C++中priority_queueclass中的swap()函数有什么用?
What is the use of swap() function in priority_queue class in C++?
我在 C++ 中探索 priority_queue class,但想不出 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';
swap
是图书馆范围内的功能;标准库中的许多 类 支持交换。这也是一个定制点;您可以将 std::swap
专门化为您自己的 类。
至于它的用途 - 有很多算法使用它(例如,所有排序算法)并且一些容器在内部使用它。
A swap
即 noexcept
是编写异常安全代码的好工具。
我在 C++ 中探索 priority_queue class,但想不出 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';
swap
是图书馆范围内的功能;标准库中的许多 类 支持交换。这也是一个定制点;您可以将 std::swap
专门化为您自己的 类。
至于它的用途 - 有很多算法使用它(例如,所有排序算法)并且一些容器在内部使用它。
A swap
即 noexcept
是编写异常安全代码的好工具。