multimap::emplace_hint() en C++ STL

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;
}
Producción:

The multimap is : 
KEY    ELEMENT
1    50
1    50
1    40
2    20
2    60
2    30

Publicación traducida automáticamente

Artículo escrito por gopaldave 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 *