std::
unordered_map::swap
公众成员函数 <unordered_map>
void swap ( unordered_map& ump );
交换容器
用
ump的内容交换容器的内容,
ump是另一个
unordered_map对象,它包含相同类型的元素。大小可能不同。
在调用这个成员函数之后,这个容器中的元素就是调用之前
ump中的元素,
而
ump中的元素就是这个容器中的元素。容器内部保存的其他对象(例如它们的
hasher或
key_equal对象)也会交换。
这个函数在容器之间交换指向数据的内部指针,而不实际地对单个元素执行任何复制或移动操作,
因此不管大小如何,执行时间都是固定的。
注意,存在一个同名的全局算法函数
swap。这个全局函数为
unordered_map类型的参数重载,
使其具有与该成员函数相同的行为和复杂性。
☲ 参数
-
ump
-
与此类型相同的另一个unordered_map容器对象。
☉ 返回值
none
☣ 示例
// unordered_map::swap
#include <iostream>
#include <string>
#include <unordered_map>
int main ()
{
std::unordered_map<std::string,std::string>
first = {{"Star Wars","G. Lucas"},{"Alien","R. Scott"},{"Terminator","J. Cameron"}},
second = {{"Inception","C. Nolan"},{"Donnie Darko","R. Kelly"}};
first.swap(second);
std::cout << "first: ";
for (auto& x: first) std::cout << x.first << " (" << x.second << "), ";
std::cout << std::endl;
std::cout << "second: ";
for (auto& x: second) std::cout << x.first << " (" << x.second << "), ";
std::cout << std::endl;
return 0;
} |
输出:
first: Inception (C. Nolan), Donnie Darko (R. Kelly),
second: Alien (R. Scott), Terminator (J. Cameron), Star Wars (G. Lucas),
✥ 复杂度
常量
☣ 迭代器的有效性
所有指向两个容器中元素的迭代器、指针和引用仍然有效,但现在它们指向另一个容器中的元素,并在其中迭代.
🍄 另请参阅
swap (unordered_map) |
交换两个unordered_map的内容(函数模板) |
swap |
交换两个对象的值(函数模板) |
swap_ranges |
交换两个范围的值(函数模板) |