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

   2024-09-30 9990
核心提示:C++中的priority_queue是一个容器适配器,它提供了常数时间查找最大元素(在std::greater比较器下为最小元素)的能力,并且可以

C++中的priority_queue是一个容器适配器,它提供了常数时间查找最大元素(在std::greater比较器下为最小元素)的能力,并且可以在对数时间内插入和删除元素

插入操作:使用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;}
删除操作:使用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;

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号