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

Unordered_multimap ::emplace_hint() es una función integrada en C++ STL que inserta una nueva {clave:elemento} en el contenedor unordered_multimap. Comienza a buscar desde la posición proporcionada en el parámetro para el punto de inserción del elemento. La posición solo actúa como una sugerencia, no decide la posición en la que se debe realizar la inserción. La inserción se realiza automáticamente en la posición según el criterio del contenedor. Aumenta el tamaño del contenedor en uno. 

Sintaxis: 

unordered_multimap_name.emplace_hint(iterator position, key, element)

Parámetros: La función acepta tres parámetros obligatorios que se describen a continuación:  

  • posición: especifica el iterador que apunta a la posición desde donde se iniciará la operación de búsqueda para la inserción.
  • clave: especifica la clave que se va a insertar en el contenedor.
  • elemento: especifica el elemento que se va a insertar en el contenedor

Valor de retorno: Devuelve un iterador que apunta al elemento recién insertado. 

Los siguientes programas ilustran la función anterior: 

Programa 1:  

C++

// C++ program to illustrate
// unordered_multimap::emplace_hint()
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
   
int main()
{
   
    // declaration
    unordered_multimap<int, int> sample;
   
    // inserts key and element in a faster
    // way as hint given is correct
    auto it = sample.emplace_hint(sample.begin(), 1, 2);
    it = sample.emplace_hint(it, 1, 2);
    it = sample.emplace_hint(it, 1, 3);
   
    // slower methods as wrong position
    // has been given to start
    sample.emplace_hint(sample.begin(), 4, 9);
    sample.emplace_hint(sample.begin(), 60, 89);
   
    std::cout << "Key and elements:\n";
    for (auto it = sample.begin(); it != sample.end(); it++)
        cout << "{" << it->first << ":" << it->second << "}\n ";
   
    std::cout << std::endl;
    return 0;
}
Producción: 

Key and elements:
{60:89}
 {4:9}
 {1:2}
 {1:2}
 {1:3}

 

Programa 2: 

C++

// C++ program to illustrate
// unordered_multimap::emplace_hint()
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
   
int main()
{
   
    // declaration
    unordered_multimap<string, string> sample;
   
    // inserts elements in a faster way as
    // hint given is correct
    auto it = sample.emplace_hint(sample.begin(), "gopal", "dave");
    it = sample.emplace_hint(it, "gopal", "dave");
    it = sample.emplace_hint(it, "Geeks", "Website");
   
    // slower methods as wrong position
    // has been given to start
    sample.emplace_hint(sample.begin(), "Geeks", "STL");
    sample.emplace_hint(sample.begin(), "Multimap", "functions");
   
    std::cout << "Key and elements:\n";
    for (auto it = sample.begin(); it != sample.end(); it++)
        cout << "{" << it->first << ":" << it->second << "}\n ";
   
    std::cout << std::endl;
    return 0;
}
Producción: 

Key and elements:
{Multimap:functions}
 {Geeks:Website}
 {Geeks:STL}
 {gopal:dave}
 {gopal:dave}

 

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 *