función unordered_map emplace_hint() en C++ STL

Unordered_map ::emplace_hint() es una función incorporada en C++ STL que inserta la clave y su elemento en el contenedor de unordered_map con una pista determinada. Aumenta efectivamente el tamaño del contenedor en uno, ya que unordered_map 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 unordered_map::emplace() pero a veces es más rápido que 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:

unordered_map_name.emplace_hint(position, key, element)

Parámetros: La función acepta los siguientes parámetros que se describen a continuación.

  • position: especifica la posición desde donde se iniciará la operación de búsqueda del pedido, por lo que la inserción será más rápida.
  • key: especifica la clave que se insertará en el contenedor unordered_map.
  • elemento: especifica el elemento de la clave que se insertará en el contenedor unordered_map.

Tipo de devolución: esta función no devuelve nada.

Complejidad de tiempo: O(n) en el peor de los casos.

Los siguientes programas ilustran el método emplace_hint():

Ejemplo 1:

// C++ program to illustrate the
// unordered_map::emplace_hint() function
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
  
    // initialize container
    unordered_map<int, int> mp;
  
    // insert elements in random order
    mp.emplace_hint(mp.begin(), 2, 30);
    mp.emplace_hint(mp.begin(), 1, 40);
    mp.emplace_hint(mp.begin(), 3, 60);
  
    // prints the elements
    cout << "\nThe unordered_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 unordered_map is : 
KEY    ELEMENT
3    60
2    30
1    40

Ejemplo 2

// C++ program to illustrate the
// unordered_map::emplace_hint() function
  
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
  
    // initialize container
    unordered_map<char, int> mp;
  
    // insert elements in random order
    mp.emplace_hint(mp.begin(), 'b', 30);
    mp.emplace_hint(mp.begin(), 'a', 40);
    mp.emplace_hint(mp.begin(), 'c', 60);
  
    // prints the elements
    cout << "\nThe unordered_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 unordered_map is : 
KEY    ELEMENT
c    60
b    30
a    40

Publicación traducida automáticamente

Artículo escrito por ankit15697 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *