unordered_map operator= in C++ STL

The ‘=’ is an operator in C++ STL which copies (or moves) an unordered_map to another unordered_map and unordered_map::operator= is the corresponding operator function. There are three versions of this function.

  1. The first version takes reference of an unordered_map as an argument and copies it to an unordered_map.
  2. The second version performs a move assignment i.e it moves the content of an unordered_map to another unordered_map.
  3. The third version assigns contents of an initializer list to an unordered_map.

Syntax

ump.operator= ( unordered_map& ump )
ump.operator= ( unordered_map&& ump )
ump.operator= ( initializer list )

Parameters:



  1. The first version takes the reference of an unordered_map as argument.
  2. The second version takes the r-value reference of an unordered_map as argument.
  3. The third version takes an initializer list as argument.

Return value: All of them returns the value of this pointer(*this).

Below program illustrates the unordered_map::operator= in C++.
Example

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ code to illustrate the method
// unordered_map::operator=()
#include <bits/stdc++.h>
using namespace std;
  
// merge function
template <class T>
T merge(T a, T b)
{
    T t(a);
    t.insert(b.begin(), b.end());
    return t;
}
  
int main()
{
    unordered_map<int, int> sample1, sample2, sample3;
  
    // List initialization
    sample1 = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
    sample2 = { { 7, 8 }, { 9, 10 }, { 11, 12 } };
    // Merge both lists
    sample3 = merge(sample1, sample2);
  
    // copy assignment
    sample1 = sample3;
  
    // Print the unordered_map list
    for (auto& it : sample1)
        cout << it.first << " : " << it.second << endl;
  
    for (auto& it : sample2)
        cout << it.first << " : " << it.second << endl;
  
    for (auto& it : sample3)
        cout << it.first << " : " << it.second << endl;
    return 0;
}

chevron_right


Output:

7 : 8
9 : 10
11 : 12
1 : 2
3 : 4
5 : 6
11 : 12
9 : 10
7 : 8
7 : 8
9 : 10
11 : 12
1 : 2
3 : 4
5 : 6


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.