unordered_map insert in C++ STL

The unordered_map::insert() is a built-in function in C++ STL which is used to insert elements with a particular key in the unordered_map container. This function increases container size by 1. This function does not insert duplicate entries. There are following variant of this function. All are overloaded functions.
Syntax-1:

iterator unordered_map_name.insert({key, element})

Parameters : This function takes two arguments as input parameters. key and its value to be inserted.
Return type : The function returns an iterator pointing to the new element in the container.



filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate
// unordered_map::insert({key, element})
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    // initialize container
    unordered_map<int, int> ump;
  
    // insert elements in random order
    ump.insert({ 20, 130 });
    ump.insert({ 100, 410 });
    ump.insert({ 31, 60 });
  
    // prints the elements
    cout << "KEY\tELEMENT\n";
    for (auto itr = ump.begin(); itr != ump.end(); itr++) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}

chevron_right


Output:

KEY    ELEMENT
31    60
20    130
100    410

Syntax-2:

iterator unordered_map_name.insert(iterator position, {key, element})

This function insert element in unordered_map after at specified position.
Parameters : The parameters key and elements are same as in function of type 1 but position is from where searching operation is performed for insertion of element into the container.
Return value The function returns an iterator pointing to the new element in the container.
Below program illustrate above syntax clearly.

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate
// unordered_map::insert(iterator position, {key, element})
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
  
    // initialize container
    unordered_map<char, int> ump;
  
    // insert elements in random order
    ump.insert({ 'a', 1 });
    ump.insert({ 'b', 2 });
  
    auto it = ump.find('a');
  
    // inserts {3, 6} starting the search from
    // position where 2 is present
    ump.insert(it, { 'c', 3 });
  
    // prints the elements
    cout << "KEY\tELEMENT\n";
    for (auto itr = ump.begin(); itr != ump.end(); ++itr) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}

chevron_right


Output:

KEY    ELEMENT
c    3
a    1
b    2

Syntax-3:

iterator unordered_map_name.insert(iterator position1, iterator position2)

Parameters : This function accepts two parameters position1 and position2 which specifies the range all elements between this range are inserted into another container including element at position1 but excluding element at position2.
Return value The function returns an iterator pointing to the new element in the container.
Below program illustrate above syntax clearly.

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate
// unordered_map::insert(iterator position1, iterator position2)
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
  
    // initialize container
    unordered_map<int, int> ump, ump1;
  
    // insert elements in random order
    ump.insert({ 2, 20 });
    ump.insert({ 1, 10 });
    ump.insert({ 3, 30 });
  
    // inserts all elements in range
    // [begin, end) in mp1
    // this function is used to copy elements
    // between containers.
    ump1.insert(ump.begin(), ump.end());
  
    // prints the elements
    cout << "Elements in ump1 are\n";
    cout << "KEY\tELEMENT\n";
    for (auto itr = ump1.begin(); itr != ump1.end(); ++itr) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}

chevron_right


Output:

Elements in ump1 are
KEY    ELEMENT
1    10
2    20
3    30


My Personal Notes arrow_drop_up

All powers are within you You can do anything and everything Believe in that

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.