El multimap::emplace_hint() es una función integrada en C++ STL que inserta la clave y su elemento en el contenedor de mapas múltiples con una pista determinada. Aumenta efectivamente el tamaño del contenedor en uno, ya que multimapa es el contenedor que almacena varias claves con los mismos valores. 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 multimap::emplace() pero a veces es más rápida si el usuario proporciona la posición con precisión.
Sintaxis:
multimap_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 multimapa.
- elemento: especifica el elemento de la clave que se insertará en el contenedor multimapa.
- 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: la función no devuelve nada.
// C++ program to illustrate the // multimap::emplace_hint() function #include <bits/stdc++.h> using namespace std; int main() { // initialize container multimap<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(), 2, 60); // slower mp.emplace_hint(mp.begin(), 2, 20); // slower mp.emplace_hint(mp.begin(), 1, 50); // faster mp.emplace_hint(mp.begin(), 1, 50); // faster // prints the elements cout << "\nThe multimap 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 multimap is : KEY ELEMENT 1 50 1 50 1 40 2 20 2 60 2 30