C++ Unordered_map Library - unordered_map() Function


The C++ function std::unordered_map::insert() extends unordered_map by inserting new element. This memeber function increases container size by one.


Following is the declaration for std::unordered_map::insert() function form std::unordered_map header.


template <class P>
iterator insert (const_iterator position, P&& val);


  • position − Hint for the position to insert element.

  • val − Value to be inserted.

Return value

Returns an iterator pointing to the newly inserted element.

Time complexity

Constant i.e. O(1) in average case.

Linear i.e. O(n) in worst case.


The following example shows the usage of std::unordered_map::insert() function.

#include <iostream>
#include <unordered_map>

using namespace std;

int main(void) {
   unordered_map<char, int> um = {
            {'b', 2},
            {'c', 3},
            {'d', 4},

   um.insert(move(um.begin()), pair<char, int>('a', 1));
   um.insert(move(um.end()), pair<char, int>('e', 5));

   cout << "Unordered map contains following elements" << endl;

   for (auto it = um.begin(); it != um.end(); ++it)
      cout << it->first << " = " << it->second << endl;

   return 0;

Let us compile and run the above program, this will produce the following result −

Unordered map contains following elements
e = 5
a = 1
d = 4
b = 2
c = 3