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

Unordered_multiset ::emplace_hint() es una función integrada en C++ STL que inserta un nuevo elemento en el contenedor unordered_multiset. 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_multiset_name.emplace_hint(iterator position, val)

Parámetros: La función acepta dos 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.
  • val: especifica el elemento que se va a insertar en el contenedor.

Valor devuelto: Devuelve un iterador que apunta al elemento recién insertado. Los siguientes programas ilustran la función anterior:

 Programa 1: 

CPP

// C++ program to illustrate the
// unordered_multiset::emplace_hint()
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // declaration
    unordered_multiset<int> sample;
 
    // inserts element using emplace_hint()
 
    // fast insertions as the search starts
    // from the previously inserted positions
    auto it = sample.emplace_hint(sample.begin(), 11);
    it = sample.emplace_hint(it, 11);
    it = sample.emplace_hint(it, 11);
 
    // slow insertions as the search starts from the
    // beginning of the containers
    sample.emplace_hint(sample.begin(), 12);
    sample.emplace_hint(sample.begin(), 13);
    sample.emplace_hint(sample.begin(), 13);
    sample.emplace_hint(sample.begin(), 14);
 
    cout << "Elements: ";
 
    for (auto it = sample.begin(); it != sample.end(); it++)
        cout << *it << " ";
    return 0;
}
Producción:

Elements: 14 11 11 11 12 13 13

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

Programa 2: 

CPP

// C++ program to illustrate the
// unordered_multiset::emplace_hint() function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // declaration
    unordered_multiset<char> sample;
 
    // inserts element using emplace_hint()
 
    // fast insertions as the search starts
    // from the previously inserted positions
    auto it = sample.emplace_hint(sample.begin(), 'a');
    it = sample.emplace_hint(it, 'a');
    it = sample.emplace_hint(it, 'a');
    it = sample.emplace_hint(it, 'b');
 
    // slow insertions as the search starts from the
    // beginning of the containers
    sample.emplace('b');
    sample.emplace('c');
    sample.emplace('d');
 
    cout << "Elements: ";
 
    for (auto it = sample.begin(); it != sample.end(); it++)
        cout << *it << " ";
    return 0;
}
Producción:

Elements: d a a a b b c

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

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 *