温馨提示×

C++ STL stack能存放自定义类型吗

c++
小樊
84
2024-07-30 11:30:09
栏目: 编程语言

是的,C++ STL stack可以存放自定义类型。要存储自定义类型,需要在stack的声明中指定自定义类型,并确保该类型支持必要的操作比如拷贝构造函数和赋值运算符重载。以下是一个示例代码:

#include <iostream>
#include <stack>

// 自定义类型
class MyType {
public:
    int data;
    MyType(int data) : data(data) {}
};

int main() {
    std::stack<MyType> myStack;
    
    // 向stack中添加元素
    myStack.push(MyType(1));
    myStack.push(MyType(2));
    
    // 从stack中访问元素
    std::cout << "Top element: " << myStack.top().data << std::endl;
    
    // 从stack中弹出元素
    myStack.pop();
    std::cout << "Top element after pop: " << myStack.top().data << std::endl;
    
    return 0;
}

在这个示例中,我们定义了一个MyType类,并将其存储在stack中。我们可以通过push()方法向stack添加元素,通过top()方法访问栈顶元素,通过pop()方法弹出栈顶元素。

0