是的,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()方法彈出棧頂元素。