El map::emplace() es una función integrada en C++ STL que inserta la clave y su elemento en el contenedor del mapa. Aumenta efectivamente el tamaño del contenedor en uno. Si la misma clave se coloca más de una vez, el mapa almacena el primer elemento solo porque el mapa es un contenedor que no almacena varias claves del mismo valor.
Sintaxis:
map_name.emplace(key, element)
Parámetros: La función acepta dos parámetros obligatorios que se describen a continuación:
- clave: especifica la clave que se insertará en el contenedor multimapa.
- elemento: especifica el elemento de la clave que se insertará en el contenedor del mapa.
Valor de retorno: la función devuelve un par que consta de un iterador y un valor bool. (Iterador de la posición en la que insertó/encontró la clave, valor booleano que indica el éxito/fracaso de la inserción).
CPP
// C++ program for the illustration of // map::emplace() function #include <bits/stdc++.h> using namespace std; int main() { // initialize container map<int, int> mp; // insert elements in random order mp.emplace(2, 30); mp.emplace(1, 40); mp.emplace(2, 20); mp.emplace(1, 50); mp.emplace(4, 50); // prints the elements cout << "\nThe map is : \n"; cout << "KEY\tELEMENT\n"; for (auto itr = mp.begin(); itr != mp.end(); itr++) cout << itr->first << "\t" << itr->second << endl; return 0; }
Producción:
The map is : KEY ELEMENT 1 40 2 30 4 50