我在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';
答案 0 :(得分:0)
swap
是图书馆范围的功能;标准库中的许多类都支持交换。这也是一个定制点;您可以为自己的课程专门设置std::swap
。
关于它的用途-有很多算法在使用它(例如所有排序算法),并且某些容器在内部使用它。
swap
(即noexcept
)是编写异常安全代码的绝佳工具。