El map::emplace_hint() es una función integrada en C++ STL que inserta la clave y su elemento en el contenedor del mapa con una pista determinada. Aumenta efectivamente el tamaño del contenedor en uno, ya que el mapa es el contenedor que almacena las claves con el valor del elemento. La pista proporcionada no afecta la posición a ingresar, solo aumenta la velocidad de inserción ya que apunta a la posición desde donde se debe iniciar la búsqueda del pedido. Se inserta en el mismo orden que sigue el contenedor. Funciona de manera similar a la función map::emplace() pero a veces es más rápida si el usuario proporciona la posición con precisión. No inserta la clave con el elemento si ya está presente en el contenedor del mapa, ya que el mapa almacena solo la clave única.
Sintaxis:
map_name.emplace_hint(position, key, element)
Parámetros: La función acepta tres claves de parámetros obligatorios que se describen a continuación:
- clave: especifica la clave que se insertará en el contenedor del mapa.
- elemento: especifica el elemento de la clave que se insertará en el contenedor del mapa.
- position: especifica la posición desde donde se iniciará la operación de búsqueda para el pedido, lo que hace que la inserción sea más rápida.
Valor devuelto: Devuelve un iterador al elemento recién insertado.
Si la inserción falla porque el elemento ya existe, devuelve un iterador al elemento ya existente con la clave equivalente.
// C++ program to illustrate the // map::emplace_hint() function #include <bits/stdc++.h> using namespace std; int main() { // initialize container map<int, int> mp; // insert elements in random order mp.emplace_hint(mp.begin(), 2, 30); // faster mp.emplace_hint(mp.begin(), 1, 40); // faster mp.emplace_hint(mp.begin(), 3, 60); // slower // 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; }
The map is : KEY ELEMENT 1 40 2 30 3 60