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

El multiset::emplace_hint() es una función integrada en C++ STL que inserta un nuevo elemento en el multiset. Se pasa una posición en el parámetro de la función que actúa como una pista desde donde comienza la operación de búsqueda antes de insertar el elemento en su posición actual. La posición solo ayuda a que el proceso sea más rápido, no decide dónde se insertará el nuevo elemento. El nuevo elemento se inserta siguiendo la propiedad del contenedor multiset solamente.

Sintaxis:

multiset_name.emplace_hint(iterator position, value)

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

  • posición: este parámetro actúa como una pista desde donde se realiza la operación de búsqueda antes de insertar el elemento en su posición actual. La posición solo ayuda a que el proceso sea más rápido, no decide dónde se va a insertar el nuevo elemento. El nuevo elemento se inserta siguiendo la propiedad del contenedor multiset solamente.
  • valor: Esto especifica el elemento a insertar en el contenedor de conjuntos múltiples.

Valor de retorno: la función devuelve un iterador que apunta a la posición donde se realiza la inserción.

El siguiente programa ilustra la función anterior.

Programa 1:

// CPP program to demonstrate the
// multiset::emplace_hint() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
  
    multiset<int> s;
    auto it = s.emplace_hint(s.begin(), 1);
  
    // stores the position of 2's insertion
    it = s.emplace_hint(it, 2);
  
    // fast step as it directly
    // starts the search step from
    // position where 2 was last inserted
    s.emplace_hint(it, 4);
  
    // this is a slower step as
    // it starts checking from the
    // position where 4 was inserted
    // but 3 is to be inserted before 4
    s.emplace_hint(it, 3);
  
    // prints the multiset elements
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
  
    return 0;
}
Producción:

1 2 3 4

Programa 2:

// CPP program to demonstrate the
// multiset::emplace_hint() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
  
    multiset<int> s;
    auto it = s.emplace_hint(s.begin(), 1);
  
    // stores the position of 2's insertion
    it = s.emplace_hint(it, 2);
  
    // fast step as it directly
    // starts the search step from
    // position where 2 was last inserted
    s.emplace_hint(it, 4);
  
    // this is a slower step as
    // it starts checking from the
    // position where 4 was inserted
    // but 3 is to be inserted before 4
    s.emplace_hint(it, 3);
  
    // slower steps
    s.emplace_hint(s.begin(), 6);
    s.emplace_hint(s.begin(), 6);
    s.emplace_hint(s.begin(), 6);
    s.emplace_hint(s.begin(), 6);
  
    // prints the multiset elements
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
  
    return 0;
}
Producción:

1 2 3 4 6 6 6 6

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 *