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