c++ priority_queue小根堆
时间: 2023-09-22 18:10:56 浏览: 121
在C++中,使用priority_queue实现小根堆排序可以通过指定比较函数为greater<int>来实现。具体代码如下所示:
```cpp
#include <iostream>
#include <queue>
using namespace std;
void min_heap_sort() {
int source_data[10] = {3, 5, 8, 1, 10, 2, 9, 15, 13, 16};
priority_queue<int, vector<int>, greater<int>> q; // 小根堆
for (auto n : source_data) {
q.push(n);
}
while (!q.empty()) {
cout << q.top() << endl;
q.pop();
}
}
```
以上代码中,我们使用了priority_queue<int, vector<int>, greater<int>>来声明了一个小根堆,其中greater<int>是一个比较函数对象,用于指定元素的比较方法。在循环中,我们将源数据逐个插入到小根堆中,并通过q.top()来获取最小的元素,然后通过q.pop()来移除堆顶元素。这样就可以实现小根堆排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [C++ 优先队列priority_queue,如何定义大小根堆](https://blog.csdn.net/wenrenfudi/article/details/120181925)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文