优先队列swap()函数
时间: 2024-02-23 07:54:26 浏览: 128
优先队列是一种特殊的队列,其中每个元素都有一个优先级。在C++中,优先队列是通过std::priority_queue类来实现的。swap()函数是用于交换两个优先队列的内容的成员函数。
swap()函数的语法如下:
```cpp
void swap(priority_queue& other);
```
它接受一个参数other,表示要交换内容的另一个优先队列。调用swap()函数后,当前优先队列的内容会与参数other的内容进行交换。
下面是一个示例代码,演示了如何使用swap()函数交换两个优先队列的内容:
```cpp
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> pq1;
std::priority_queue<int> pq2;
pq1.push(3);
pq1.push(1);
pq1.push(2);
pq2.push(6);
pq2.push(4);
pq2.push(5);
std::cout << "Before swap:\n";
std::cout << "pq1: ";
while (!pq1.empty()) {
std::cout << pq1.top() << " ";
pq1.pop();
}
std::cout << "\npq2: ";
while (!pq2.empty()) {
std::cout << pq2.top() << " ";
pq2.pop();
}
pq1.swap(pq2);
std::cout << "\n\nAfter swap:\n";
std::cout << "pq1: ";
while (!pq1.empty()) {
std::cout << pq1.top() << " ";
pq1.pop();
}
std::cout << "\npq2: ";
while (!pq2.empty()) {
std::cout << pq2.top() << " ";
pq2.pop();
}
return 0;
}
```
输出结果:
```
Before swap:
pq1: 3 2 1
pq2: 6 5 4
After swap:
pq1: 6 5 4
pq2: 3 2 1
```
阅读全文