set operator= in C++ STL

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

  1. The first version takes reference of an set as an argument and copies it to an set.


    ums1.operator=(set &set2)

    Parameters: The first version takes the reference of an set as argument.

  2. The second version performs a move assignment i.e it moves the content of an set to another set.


    ums1.operator=(set &&set2)

    Parameters: The second version takes the r-value reference of an set as argument

  3. The third version assigns contents of an initializer list to an set.


    ums1.operator=(initializer list)

    Parameters: The third version takes an initializer list as argument.

  4. Return Value: All of them return the value of this pointer(*this).

    The following programs illustrates set::operator= :





    // C++ code to illustrate the method
    // set::operator=()
    #include <iostream>
    #include <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()
        set<int> sample1, sample2, sample3;
        // List initialization
        sample1 = { 1, 2, 3, 4, 5 };
        sample2 = { 6, 7, 8, 1 };
        // Merge both sets and
        // move the result to sample3
        sample3 = merge(sample1, sample2);
        // copy assignment
        sample1 = sample3;
        // Print the sets
        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;
        return 0;




    1 2 3 4 5 6 7 8 
    1 6 7 8 
    1 2 3 4 5 6 7 8

    Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

    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 or mail your article to 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.

    Improved By : ShilpaDeshmukh

    Article Tags :
    Practice Tags :

    Be the First to upvote.

    Please write to us at to report any issue with the above content.