Open In App

unordered_set operator= in C++ STL

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

Syntax



uset.operator= ( unordered_set& us )
uset.operator= ( unordered_set&& us )
uset.operator= ( initializer list )

Parameters:

Return value: All of them returns the value of this pointer(*this) . Below program illustrates the unordered_set::operator= in C++. 



Program: 




// C++ code to illustrate the method
// unordered_set::operator=()
#include <iostream>
#include <unordered_set>
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_set<int> sample1, sample2, sample3;
     
    // List initialization
    sample1 = { 7, 8, 9 };
    sample2 = { 9, 10, 11, 12 };
     
    // Merge both lists
    sample3 = merge(sample1, sample2);
     
    // copy assignment
    sample1 = sample3;
 
    // Print the unordered_set list
    for (auto it = sample1.begin(); it != sample1.end(); ++it)
        cout << *it << " ";
    cout << endl;
 
    for (auto it = sample2.begin(); it != sample2.end(); ++it)
        cout << *it << " ";
    cout << endl;
 
    for (auto it = sample3.begin(); it != sample3.end(); ++it)
        cout << *it << " ";
    cout << endl;
}

Output:
10 11 12 7 8 9 
12 11 10 9 
10 11 12 7 8 9

Time complexity: O(n)
Auxiliary Space: O(n)


Article Tags :
C++