operador unordered_map[] en C++ STL

El std::unordered_map::operator[] es una función integrada en C++ STL que devuelve la referencia del valor si la clave coincide en el contenedor. Si no se encuentra ninguna clave, inserta esa clave en el contenedor.
Sintaxis:

mapped_type& operator[](key_type&& k);

Parámetro: Toma como clave el parámetro a cuyo valor mapeado se accede.
Tipo de retorno: Devuelve una referencia asociada a esa clave.

Ejemplo 1

// C++ code to illustrate the method
// unordered_map operator[]
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    unordered_map<int, int> sample;
  
    // Map initialization
    sample = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
  
    // print element before doing
    // any operations
    for (auto& it : sample)
        cout << it.first << " : " << it.second << endl;
  
    // existing element is read
    int m = sample[1];
  
    // existing element is written
    sample[3] = m;
  
    // existing elements are accessed
    sample[5] = sample[1];
  
    // non existing element
    // new element 25 will be inserted
    m = sample[25];
  
    // new element 10 will be inserted
    sample[5] = sample[10];
  
    // print element after doing
    // operations
    for (auto& it : sample)
        cout << it.first << " : " << it.second << endl;
    return 0;
}
Producción:

5 : 6
3 : 4
1 : 2
10 : 0
1 : 2
5 : 0
3 : 2
25 : 0

Ejemplo 2

// C++ code to illustrate the method
// unordered_map operator[]
#include <bits/stdc++.h>
  
using namespace std;
  
int main()
{
    unordered_map<char, int> sample;
  
    // Map initialization
    sample = { { 'a', 2 }, { 'b', 4 }, { 'c', 6 } };
  
    // print element before doing
    // any operations
    for (auto& it : sample)
        cout << it.first << " : " << it.second << endl;
  
    // existing element is read
    int m = sample['a'];
  
    // existing element is written
    sample['b'] = m;
  
    // existing elements are accessed
    sample['c'] = sample['a'];
  
    // non existing element
    // new element 'd' will be inserted
    m = sample['d'];
  
    // new element 'f' will be inserted
    sample['c'] = sample['f'];
  
    // print element after doing
    // operations
    for (auto& it : sample)
        cout << it.first << " : " << it.second << endl;
    return 0;
}
Producción:

c : 6
b : 4
a : 2
f : 0
a : 2
b : 2
c : 0
d : 0

Complejidad temporal O(n) en el peor de los casos.

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 *