unordered_map cbegin en C++ STL

La función cbegin en c ++ se usa para devolver un iterador constante que apunta al primer elemento en un mapa desordenado.

Sintaxis:

unordered_map.cbegin()

Parámetro : Toma un parámetro opcional N. Si se establece, el iterador devuelto apuntará al primer elemento del depósito; de lo contrario, apuntará al primer elemento del contenedor.

Valores devueltos : un iterador constante que apunta al primer elemento de unordered_map.

El siguiente programa ilustra el funcionamiento de la función cbegin :

// CPP program to demonstrate implementation of
// cbegin function in unordered_map
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    unordered_map<string, int> mp;
  
    // Adding some elements in the unordered_map
    mp["g"] = 1;
    mp["e"] = 2;
    mp["k"] = 4;
    mp["s"] = 5;
  
    cout << "Contents of the unordered_map :\n";
    for (auto it = mp.cbegin(); it != mp.cend(); it++)
        cout << it->first << "==>>"
             << it->second << "\n";
}
Producción:

Contents of the unordered_map :
s==>>5
k==>>4
g==>>1
e==>>2

La función cbegin() devuelve un iterador constante. Si intentamos cambiar el valor, obtenemos un error de compilación.

// CPP program to demonstrate implementation of
// cbegin function in unordered_map
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    unordered_map<string, int> mp;
  
    // Adding some elements in the unordered_map
    mp["g"] = 1;
    mp["e"] = 2;
    mp["k"] = 4;
    mp["s"] = 5;
  
    cout << "Contents of the unordered_map :\n";
    for (auto it = mp.cbegin(); it != mp.cend(); it++)
        it->second = 10; // This would cause compiler error
}

Producción :


prog.cpp: In function 'int main()':
prog.cpp:18:20: error: assignment of member 'std::pair, int>::second' in read-only object
         it->second = 10; // This would cause compiler error
                    ^

Complejidad de Tiempo: O(1) en promedio.

Publicación traducida automáticamente

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