priority_queue的重载函数有哪些
时间: 2023-07-08 16:26:51 浏览: 116
STL priority_queue(优先队列)详解
5星 · 资源好评率100%
priority_queue 是 STL 中的一个容器适配器,它的底层实现是基于堆的数据结构。priority_queue 默认使用 less<T> 作为比较函数,也就是默认是大根堆。除了默认的构造函数之外,priority_queue 还有以下几种重载函数:
1. 指定比较函数
```c++
priority_queue<T, Container, Compare> pq;
```
其中,Compare 是一个函数对象,用于定义比较规则。例如:
```c++
priority_queue<int, vector<int>, greater<int>> pq;
```
这个定义的是小根堆。
2. 拷贝构造函数
```c++
priority_queue<T, Container> pq2(pq);
```
其中,pq 是一个已有的 priority_queue 容器。
3. 赋值运算符
```c++
priority_queue<T, Container> pq2 = pq;
```
其中,pq 是一个已有的 priority_queue 容器。
4. push 函数
```c++
pq.push(value);
```
将一个元素 value 插入堆中。
5. pop 函数
```c++
pq.pop();
```
弹出堆顶元素。注意,弹出操作并不会返回被弹出元素的值。
6. top 函数
```c++
pq.top();
```
返回堆顶元素的值。注意,这个操作并不会弹出堆顶元素。
需要注意的是,priority_queue 并没有提供迭代器,也没有提供修改元素的方法,因为这些操作在堆这种数据结构中是不支持的。
阅读全文