función unordered_set insert() en C++ STL

Unordered_set::insert() es una función incorporada en C++ STL que se utiliza para insertar un nuevo {elemento} en el contenedor de unordered_set. Cada elemento se inserta solo si aún no está presente en el contenedor (los elementos en un conjunto unordered_set tienen valores únicos). La inserción se realiza automáticamente en la posición según el criterio del contenedor (ya que utiliza diferentes funciones de hashing). Esto aumenta efectivamente el tamaño del contenedor por el número de elementos insertados.
Sintaxis: 

unordered_set_name.insert (Value)

or,

unordered_set_name.insert (InputIterator first, InputIterator last)

Parámetros: 

  • Valor : Especifica el valor que se va a insertar en el contenedor.
  • primero , último : iteradores que especifican un rango de elementos. Se insertan copias de los elementos en el rango [primero, último] en el contenedor unordered_set. Tenga en cuenta que el rango incluye todos los elementos entre el primero y el último, incluido el elemento señalado por el primero pero no el señalado por el último.

Valor devuelto: la función devuelve un par, con su par de miembros::primero establecido en un iterador que apunta al elemento recién insertado o al elemento equivalente que ya está en el conjunto. El par::segundo elemento del par se establece en verdadero si se insertó un nuevo elemento o en falso si ya existía un elemento equivalente. 
A continuación se muestran programas que ilustran la función anterior:
Complejidad del tiempo: el método insert() toma O(1).

Programa 1

CPP

#include<iostream>
#include <string>
#include <unordered_set>
using namespace std;
 
int main()
{
    unordered_set<string> mySet = { "first", "third" };
 
    string myString = "tenth";
 
    // inserts key in set
    mySet.insert(myString);
 
    cout << "My set contains:"
         << endl;
    for (const string& x : mySet) {
        cout << x
             << " ";
    }
 
    cout << endl;
    return 0;
}
Producción

My set contains:
tenth first third 

Programa 2

CPP

// C++ program to illustrate
// unordered_set::insert()
 
#include <array>
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
 
int main()
{
    unordered_set<std::string> mySet = { "first",
                                "third", "second" };
    array<std::string, 2> myArray = { "tenth",
                                      "seventh" };
    string myString = "ninth";
 
    mySet.insert(myString);
 
    // array elements range insertion in set
    mySet.insert(myArray.begin(), myArray.end());
 
    // initializer list insertion
    mySet.insert({ "fourth", "sixth" });
 
    cout << "myset contains:"
         << endl;
    for (const string& x : mySet) {
        cout << x
             << " ";
    }
    cout << endl;
 
    return 0;
}
Producción

myset contains:
sixth fourth seventh first tenth second third ninth 

Programa 3:

C++

// C++ program to illustrate
// unordered_set::insert() return values
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
 
//function to display the elements of the unordered set
void display_elements(unordered_set<int> &u_set)
{
  cout<<"the elements int the unordered set are: ";
  for(auto it:u_set)
  {
    cout<<it <<" ";
  }
  cout<<endl;
}
 
 
int main() {
 
    unordered_set<int> u_set;
      cout<<"u_set.insert(1).second: "<<u_set.insert(1).second<<endl; //on successful insertion it's true else false.
      cout<<"*(u_set.insert(1).first): "<<*(u_set.insert(1).first)<<endl;
      //first is the iterator to the inseted element, if the element not present in the u_set,
    //if the element already in the u_set, then it points to that element
 
    cout<<"u_set.insert(1).second: "<<u_set.insert(1).second<<endl;
      cout<<"*(u_set.insert(1).first): "<<*(u_set.insert(1).first)<<endl;
       
    cout<<"u_set.insert(2).second: "<<u_set.insert(2).second<<endl; //on successful insertion it's true else false.
      cout<<"*(u_set.insert(2).first): "<<*(u_set.insert(2).first)<<endl;
   
      display_elements(u_set);
      return 0;
}
Producción

u_set.insert(1).second: 1
*(u_set.insert(1).first): 1
u_set.insert(1).second: 0
*(u_set.insert(1).first): 1
u_set.insert(2).second: 1
*(u_set.insert(2).first): 2
the elements int the unordered set are: 2 1 

 

Publicación traducida automáticamente

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