Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

swap (unordered_multimap)

函数模板  <unordered_map>
template <class Key, class T, class Hash, class Pred, class Alloc>
  void swap ( unordered_multimap<Key,T,Hash,Pred,Alloc>& lhs,
              unordered_multimap<Key,T,Hash,Pred,Alloc>& rhs );

交换两个unordered_multimap容器的内容

容器lhs的内容与容器rhs的内容交换。两个容器对象必须具有相同的类型(相同的模板形参),尽管大小可能不同。

在调用这个成员函数之后,lhs中的元素就是调用之前在rhs中的元素, 而rhs中的元素就是在lhs中的元素。容器内部保存的其他对象(例如它们的 hasher或key_equal对象)也会交换。

这是通用算法swap的特化,它通过交换内部数据指针来提高性能,而不实际对单个元素执行任何复制或移动。

☲  参数


lhs, rhs
unordered_multimap容器(分别位于操作符的左边和右边),具有相同的模板形参(Key、T、Hash、Pred和Alloc)。

☉  返回值



none

☣  示例



// swap (unordered_multimap specialization)
#include <iostream>
#include <string>
#include <unordered_map>

int main ()
{
  std::unordered_multimap<std::string,std::string>
     a = {{"orange","FL"},{"apple","NY"},{"apple","WA"}},
     b  = {{"strawberry","LA"},{"strawberry","NC"},{"pear","OR"}};

  swap(a,b);

  std::cout << "a: ";
  for (auto& x: a) std::cout << " " << x.first << ":" << x.second;
  std::cout << std::endl;

  std::cout << "b: ";
  for (auto& x: b) std::cout << " " << x.first << ":" << x.second;
  std::cout << std::endl;

  return 0;
}

输出:
a: pear:OR strawberry:LA strawberry:NC
b: orange:FL apple:NY apple:WA

✥ 复杂度



常量

☣ 迭代器的有效性



所有的迭代器、指针和引用仍然有效,但现在都指向另一个容器中的元素,并对其进行迭代。

🍄  另请参阅



unordered_multimap::swap 交换内容(公众成员函数)
swap 交换内容(函数模板)
swap_ranges 交换范围内容(函数模板)

联系我们 免责声明 关于CandCplus 网站地图