C ++中priority_queue类中的swap()函数有什么用途?

时间:2018-07-22 17:21:30

标签: c++11 data-structures stl priority-queue swap

我在C ++中探索priority_queue类,无法考虑swap()的任何实际使用。

参考:http://www.cplusplus.com/reference/queue/priority_queue/swap/

有人可以列举一个实际的示例来说明使用此功能的好处。本质上感觉就像是重命名优先级队列变量。

std::priority_queue<int> foo,bar;
foo.push (15); foo.push(30); foo.push(10);
bar.push (101); bar.push(202);

foo.swap(bar);

std::cout << "size of foo: " << foo.size() << '\n';
std::cout << "size of bar: " << bar.size() << '\n';

1 个答案:

答案 0 :(得分:0)

swap是图书馆范围的功能;标准库中的许多类都支持交换。这也是一个定制点;您可以为自己的课程专门设置std::swap

关于它的用途-有很多算法在使用它(例如所有排序算法),并且某些容器在内部使用它。

swap(即noexcept)是编写异常安全代码的绝佳工具。