C++的stack
容器適配器可以存儲自定義類型。要實現這一點,您需要確保滿足以下條件:
<
運算符,因為stack
默認使用<
運算符來比較元素并進行排序。如果您希望使用其他比較方式,您需要提供自定義的比較函數或類。以下是一個簡單的示例,展示了如何在stack
中存儲自定義類型:
#include <iostream>
#include <stack>
class MyType {
public:
int value;
MyType(int v) : value(v) {}
// 重載 '<' 運算符
bool operator<(const MyType& other) const {
return value < other.value;
}
};
int main() {
std::stack<MyType> myStack;
myStack.push(MyType(3));
myStack.push(MyType(1));
myStack.push(MyType(4));
while (!myStack.empty()) {
MyType top = myStack.top();
myStack.pop();
std::cout << "Top value: " << top.value << std::endl;
}
return 0;
}
在這個示例中,我們定義了一個名為MyType
的自定義類型,并重載了<
運算符。然后,我們創建了一個stack
對象來存儲MyType
對象,并執行了一些基本操作。