inserción unordered_map en C++ STL

Unordered_map ::insert() es una función incorporada en C++ STL que se usa para insertar elementos con una clave particular en el contenedor unordered_map. Esta función aumenta el tamaño del contenedor en 1. Esta función no inserta entradas duplicadas. Existen las siguientes variantes de esta función. Todas son funciones sobrecargadas.
Sintaxis-1:

iterador unordered_map_name.insert({clave, elemento})

Parámetros: Esta función toma dos argumentos como parámetros de entrada. key y su valor a insertar.
Tipo de devolución: la función devuelve un iterador que apunta al nuevo elemento en el contenedor.

// C++ program to illustrate
// unordered_map::insert({key, element})
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    // initialize container
    unordered_map<int, int> ump;
  
    // insert elements in random order
    ump.insert({ 20, 130 });
    ump.insert({ 100, 410 });
    ump.insert({ 31, 60 });
  
    // prints the elements
    cout << "KEY\tELEMENT\n";
    for (auto itr = ump.begin(); itr != ump.end(); itr++) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}
Producción:

KEY    ELEMENT
31    60
20    130
100    410

Sintaxis-2:

iterador unordered_map_name.insert(posición del iterador, {clave, elemento})

Esta función inserta un elemento en unordered_map después de la posición especificada.
Parámetros: la clave de parámetros y los elementos son los mismos que en función del tipo 1, pero la posición es desde donde se realiza la operación de búsqueda para la inserción del elemento en el contenedor.
Valor devuelto La función devuelve un iterador que apunta al nuevo elemento en el contenedor.
El programa a continuación ilustra claramente la sintaxis anterior.

// C++ program to illustrate
// unordered_map::insert(iterator position, {key, element})
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
  
    // initialize container
    unordered_map<char, int> ump;
  
    // insert elements in random order
    ump.insert({ 'a', 1 });
    ump.insert({ 'b', 2 });
  
    auto it = ump.find('a');
  
    // inserts {3, 6} starting the search from
    // position where 2 is present
    ump.insert(it, { 'c', 3 });
  
    // prints the elements
    cout << "KEY\tELEMENT\n";
    for (auto itr = ump.begin(); itr != ump.end(); ++itr) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}
Producción:

KEY    ELEMENT
c    3
a    1
b    2

Sintaxis-3:

iterador unordered_map_name.insert(posición del iterador 1, posición del iterador 2)

Parámetros: esta función acepta dos parámetros position1 y position2 que especifican el rango en el que todos los elementos entre este rango se insertan en otro contenedor, incluido el elemento en position1 pero excluyendo el elemento en position2.
Valor devuelto La función devuelve un iterador que apunta al nuevo elemento en el contenedor.
El programa a continuación ilustra claramente la sintaxis anterior.

// C++ program to illustrate
// unordered_map::insert(iterator position1, iterator position2)
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
  
    // initialize container
    unordered_map<int, int> ump, ump1;
  
    // insert elements in random order
    ump.insert({ 2, 20 });
    ump.insert({ 1, 10 });
    ump.insert({ 3, 30 });
  
    // inserts all elements in range
    // [begin, end) in mp1
    // this function is used to copy elements
    // between containers.
    ump1.insert(ump.begin(), ump.end());
  
    // prints the elements
    cout << "Elements in ump1 are\n";
    cout << "KEY\tELEMENT\n";
    for (auto itr = ump1.begin(); itr != ump1.end(); ++itr) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}
Producción:

Elements in ump1 are
KEY    ELEMENT
1    10
2    20
3    30

Publicación traducida automáticamente

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