C++ Map Library - emplace() Function



Description

The C++ function std::map::emplace() extends container by inserting new element.

Insertion takes place only and only if key is not present already.

Declaration

Following is the declaration for std::map::emplace() function form std::map header.

C++11

template <class... Args>
pair<iterator,bool> emplace (Args&&... args);

Parameters

args − arguments to forward to the constructor of the element.

Return value

Returns a pair consisting of bool to indicate whether insertion is happened or not and returns an iterator to the newly inserted element.

Exceptions

If an exception is thrown by any operation, this function has no effect.

Time complexity

Logarithmic i.e. log(n)

Example

The following example shows the usage of std::map::emplace() function.

#include <iostream>
#include <map>

using namespace std;

int main(void) {
   /* Initializer_list constructor */
   map<char, int> m;

   m.emplace('a', 1);
   m.emplace('b', 2);
   m.emplace('c', 3);
   m.emplace('d', 4);
   m.emplace('e', 5);

   cout << "Map contains following elements in reverse order" << endl;

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

   return 0;
}

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

Map contains following elements in reverse order
a = 1
b = 2
c = 3
d = 4
e = 5
map.htm
Advertisements