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

溫馨提示×

c++ priority_queue的插入和刪除操作

c++
小樊
103
2024-09-04 19:09:49
欄目: 編程語言

C++中的priority_queue是一個容器適配器,它提供了常數時間查找最大元素(在std::greater比較器下為最小元素)的能力,并且可以在對數時間內插入和刪除元素

  1. 插入操作:使用push()方法將元素添加到priority_queue中。這將根據比較函數將新元素放置在正確的位置。

示例代碼:

#include<iostream>
#include<queue>

int main() {
    std::priority_queue<int> pq;

    // 插入元素到 priority_queue
    pq.push(5);
    pq.push(8);
    pq.push(3);
    pq.push(1);

    // priority_queue 中的元素:1, 3, 5, 8

    return 0;
}
  1. 刪除操作:使用pop()方法從priority_queue中刪除最大(或最小)元素。注意,pop()只會刪除堆頂元素,而不是指定元素。如果要刪除指定元素,請使用std::make_heapstd::push_heapstd::pop_heap等算法重新實現一個自定義的堆容器。

示例代碼:

#include<iostream>
#include<queue>

int main() {
    std::priority_queue<int> pq;

    pq.push(5);
    pq.push(8);
    pq.push(3);
    pq.push(1);

    // priority_queue 中的元素:1, 3, 5, 8

    // 刪除堆頂元素(最小值)
    pq.pop();

    // priority_queue 中的元素:3, 5, 8

    return 0;
}

請注意,上述示例中的priority_queue默認為最大堆。如果需要最小堆,請在聲明priority_queue時傳遞std::greater<int>作為模板參數,如下所示:

std::priority_queue<int, std::vector<int>, std::greater<int>> min_heap;

0
江安县| 新丰县| 富顺县| 祁门县| 寻乌县| 灌南县| 开阳县| 壤塘县| 康平县| 昭通市| 大同县| 许昌市| 兴海县| 汪清县| 汉寿县| 临桂县| 定结县| 凉山| 中阳县| 沙坪坝区| 镇安县| 武隆县| 瓦房店市| 平乡县| 望都县| 长武县| 六枝特区| 长顺县| 全南县| 城固县| 宣恩县| 东城区| 榕江县| 武冈市| 长阳| 江西省| 海淀区| 通许县| 民丰县| 定兴县| 乌鲁木齐县|