公共成員函式
<unordered_map>

std::unordered_map::swap

void swap ( unordered_map& ump );
交換內容
交換容器的內容與 ump 的內容,ump 是另一個具有相同型別元素的 unordered_map 物件。大小可能不同。

在呼叫此成員函式後,此容器中的元素將是呼叫前 ump 中的元素,而 ump 中的元素將是this中的元素。容器內部保持的其他物件(例如其hasherkey_equal物件)也會被交換。

此函式在不實際複製或移動單個元素的情況下,交換容器之間的內部資料指標,從而允許以恆定的時間執行,而不考慮大小。

請注意,存在一個同名的全域性演算法函式 swap。此全域性函式已為 unordered_map 型別的引數進行了過載,使其具有與此成員函式相同的行為和複雜性。

引數

ump
與此物件型別相同的另一個 unordered_map 容器物件。

返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 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),


複雜度

常量。

迭代器有效性

所有迭代器、指標和引用都保持有效,但現在它們指向其他容器中的元素,並在其中進行迭代。

另見