91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c++ stack類能否自定義比較函數

c++
小樊
82
2024-09-25 08:43:12
欄目: 編程語言

是的,C++的stack類允許你自定義比較函數。默認情況下,stack使用operator<進行元素比較,但你可以在創建stack時提供自定義的比較函數。

例如,假設你有一個自定義的數據結構MyClass,你想使用一個非標準的比較函數對其進行排序。你可以這樣做:

#include <iostream>
#include <stack>
#include <functional>

class MyClass {
public:
    int value;

    MyClass(int v) : value(v) {}
};

// 自定義比較函數
bool compareMyClass(const MyClass& a, const MyClass& b) {
    return a.value > b.value; // 降序排序
}

int main() {
    // 使用自定義比較函數創建stack
    std::stack<MyClass, std::vector<MyClass>, decltype(compareMyClass)> myStack(compareMyClass);

    myStack.push(MyClass(5));
    myStack.push(MyClass(3));
    myStack.push(MyClass(10));

    while (!myStack.empty()) {
        MyClass top = myStack.top();
        myStack.pop();
        std::cout << "Top value: " << top.value << std::endl;
    }

    return 0;
}

在這個例子中,我們定義了一個名為compareMyClass的比較函數,用于按降序對MyClass對象進行排序。然后,我們使用std::stack的第三個模板參數(比較函數)來指定我們的自定義比較函數。

0
英德市| 宁蒗| 房山区| 娱乐| 东城区| 呼玛县| 嘉善县| 滕州市| 石首市| 多伦县| 新营市| 茶陵县| 静乐县| 兴业县| 盘山县| 桂阳县| 镇坪县| 朝阳县| 微山县| 墨竹工卡县| 遵化市| 集安市| 鄂尔多斯市| 鹤峰县| 武汉市| 平阴县| 慈利县| 吉安市| 拜泉县| 汉沽区| 汉中市| 遂溪县| 南靖县| 九台市| 金阳县| 洪湖市| 枣强县| 丰顺县| 大同市| 郁南县| 平谷区|