Skip to content
Related Articles

Related Articles

map insert() in C++ STL

View Discussion
Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 24 Aug, 2022
View Discussion
Improve Article
Save Article

The map::insert() is a built-in function in C++ STL which is used to insert elements with a particular key in the map container. 

  • Syntax: 
iterator map_name.insert({key, element})

Parameters: The function accepts a pair that consists of a key and element which is to be inserted into the map container. The function does not insert the key and element in the map if the key already exists in the map. 

Return Value: The function returns a pair, with its member pair::first set to an iterator pointing to either the newly inserted element or to the element with an equivalent key in the map. The pair::second element in the pair is set to true if a new element was inserted or false if an equivalent key already existed.

Below is the illustration of the above syntax: 

C++




// C++ program to illustrate
// map::insert({key, element})
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // initialize container
    map<int, int> mp;
 
    // insert elements in random order
    mp.insert({ 2, 30 });
    mp.insert({ 1, 40 });
    mp.insert({ 3, 60 });
 
    // does not inserts key 2 with element 20
    mp.insert({ 2, 20 });
    mp.insert({ 5, 50 });
 
    // prints the elements
    cout << "KEY\tELEMENT\n";
    for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}


Output: 

KEY    ELEMENT
1    40
2    30
3    60
5    50

 

  • Syntax: 
iterator map_name.insert(iterator position, {key, element})

Parameters: The function accepts two parameters which is described below: 

  • {key, element}: This specifies a pair that consists of a key and element which is to be inserted into the map container.
  • position: This does not specify the position where the insertion is to be done, it only points to a position from where the searching operation for insertion is to be started to make the process faster. The insertion is done according to the order which is followed by the map container.

Return Value: The function returns an iterator pointing to the new element in the container.

Below is the illustration of the above syntax:

C++




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


Output:

KEY    ELEMENT
1    40
2    30
3    60
  • Syntax: 
iterator map_name.insert(iterator position1, iterator position2)

CPP-STL-Self-Paced-Course

Parameters: The function accepts two parameters position1 and position2 which specifies the range of elements. All the elements in the range [position1, last) are inserted in another map container. 

Return Value: The function returns an iterator pointing to the new element in the container. 

Below is the illustration of the above syntax: 

C++




// C++ program to illustrate
// map::insert(iteratorposition1, iteratorposition2)
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // initialize container
    map<int, int> mp, mp1;
 
    // insert elements in random order
    mp.insert({ 2, 30 });
    mp.insert({ 1, 40 });
 
    // inserts all elements in range
    // [begin, end) in mp1
    mp1.insert(mp.begin(), mp.end());
 
    // prints the elements
    cout << "Elements in mp1 are\n";
    cout << "KEY\tELEMENT\n";
    for (auto itr = mp1.begin(); itr != mp1.end(); ++itr) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}


Output: 

Elements in mp1 are
KEY    ELEMENT
1    40
2    30

 

 

 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!