亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
南乐县| 罗城| 大宁县| 库尔勒市| 连南| 荥阳市| 迁安市| 泽普县| 横峰县| 大姚县| 诸暨市| 潜江市| 和田县| 海安县| 衡山县| 尼勒克县| 侯马市| 涟水县| 静乐县| 靖宇县| 泰顺县| 锡林郭勒盟| 永城市| 平度市| 岳阳市| 乌拉特中旗| 扎赉特旗| 托克托县| 孟连| 大邑县| 清流县| 股票| 南靖县| 大厂| 南丰县| 双桥区| 垣曲县| 蒙阴县| 会东县| 延川县| 灵石县|