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

溫馨提示×

C++ PriorityQueue 能否自定義比較函數

c++
小樊
84
2024-10-14 18:29:08
欄目: 編程語言

是的,C++的PriorityQueue允許你自定義比較函數。你可以通過傳遞一個自定義的比較對象(也稱為仿函數)給PriorityQueue的構造函數來實現這一點。這個比較對象需要定義一個名為operator()的成員函數,該函數接受兩個參數并返回一個布爾值,用于比較這兩個參數。

以下是一個使用自定義比較函數的PriorityQueue示例:

#include <iostream>
#include <queue>

// 自定義比較函數對象
struct Compare {
    bool operator()(int a, int b) {
        return a > b; // 降序排列
    }
};

int main() {
    // 使用自定義比較函數創建 PriorityQueue
    std::priority_queue<int, std::vector<int>, Compare> pq;

    // 向 PriorityQueue 中添加元素
    pq.push(5);
    pq.push(3);
    pq.push(8);
    pq.push(1);

    // 輸出 PriorityQueue 中的元素
    while (!pq.empty()) {
        std::cout << pq.top() << " ";
        pq.pop();
    }

    return 0;
}

在這個示例中,我們定義了一個名為Compare的結構體,它重載了operator()函數以實現降序排列。然后,我們使用這個比較對象創建了一個PriorityQueue實例。注意,我們傳遞了一個std::vector<int>作為底層容器,因為PriorityQueue默認使用std::vector作為底層容器。

0
平塘县| 南郑县| 涟水县| 西丰县| 宜兴市| 苗栗县| 竹北市| 乐都县| 西城区| 桦甸市| 静乐县| 军事| 延边| 大港区| 侯马市| 平凉市| 同江市| 通道| 青铜峡市| 奉新县| 霍邱县| 离岛区| 清丰县| 农安县| 古浪县| 汽车| 关岭| 杂多县| 东乌珠穆沁旗| 高阳县| 扎赉特旗| 克山县| 当涂县| 临颍县| 胶南市| 龙州县| 驻马店市| 桐柏县| 甘南县| 图们市| 怀远县|