溫馨提示×

c++ stack類能否存儲自定義類型

c++
小樊
100
2024-09-25 08:32:14
欄目: 云計算

C++的stack容器適配器可以存儲自定義類型。要實現這一點,您需要確保滿足以下條件:

  1. 自定義類型需要重載<運算符,因為stack默認使用<運算符來比較元素并進行排序。如果您希望使用其他比較方式,您需要提供自定義的比較函數或類。
  2. 如果您的自定義類型包含指針或其他資源管理對象,請確保正確地實現拷貝構造函數、賦值運算符和析構函數,以避免資源泄漏或其他問題。

以下是一個簡單的示例,展示了如何在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對象,并執行了一些基本操作。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女