Biblioteca de mapas de C ++ - función emplace ()

Descripción

La función C ++ std::map::emplace() extiende el contenedor insertando un nuevo elemento.

La inserción se realiza solo y solo si la clave aún no está presente.

Declaración

A continuación se muestra la declaración de la función std :: map :: emplace () del encabezado std :: map.

C ++ 11

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

Parámetros

args - argumentos para reenviar al constructor del elemento.

Valor devuelto

Devuelve un par que consta de bool para indicar si se realizó la inserción o no y devuelve un iterador al elemento recién insertado.

Excepciones

Si alguna operación lanza una excepción, esta función no tiene ningún efecto.

Complejidad del tiempo

Logarítmico, es decir, log (n)

Ejemplo

El siguiente ejemplo muestra el uso de la función std :: map :: emplace ().

#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;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

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