C ++

Cómo iterar sobre el mapa en C ++

Cómo iterar sobre el mapa en C ++
En este tutorial rápido, veremos cómo iterar en el mapa en C++.

Hay varias formas de iterar sobre el mapa en C++. Con las versiones más recientes de C ++, hay formas más avanzadas de iterar sobre el mapa en C++.

Repasemos cada uno por uno.

Usando for loop con stp :: map

Hemos creado un mapa llamado countryCapitalMap e insertó pares clave-valor en él.


#incluir
#incluir
#incluir
#incluir
#incluir
usando el espacio de nombres std;
int main ()
// Inicializar un mapa
mapa> "India", "Delhi"));
countryCapitalMap.insertar (par("Nepal", "Katmandú"));
countryCapitalMap.insertar (par("China", "Beijing"));
countryCapitalMap.insertar (par("Francia", "París"));
// Iterar usando el iterador en el bucle for
para (auto itr = countryCapitalMap.empezar(); itr != countryCapitalMap.final(); itr ++)

std :: cout << itr->primero // Clave de acceso
<< ':'
<< itr->segundo // Valor de acceso
<< std::endl;

return 0;


Producción:

China: Pekín
Francia: París
India: Delhi
Nepal: Katmandú

Como puede ver, hemos impreso país: capital (clave: valor) usando el bucle for.

Si se da cuenta, hemos utilizado auto especificador de tipo para el iterador del mapa debido a la legibilidad. Puedes usar mapa:: iterador explícitamente también.
Nota: Si ve la salida, está ordenada por claves en orden ascendente. Esto se debe a que std :: map es un contenedor asociativo ordenado con Comparator suministrado (versión C ++ 11 en adelante). Dado que no proporcionamos ningún comparador, C ++ ha utilizado el Comparador predeterminado para la cadena.

Usando while loop con stp :: map

También podemos usar un bucle while en lugar de un bucle for.


#incluir
#incluir
#incluir
#incluir >
usando el espacio de nombres std;
int main ()
// Inicializar un mapa
mapa countryCapitalMap;
// Insertar diferentes elementos en el mapa
countryCapitalMap.insertar (par("India", "Delhi"));
countryCapitalMap.insertar (par("Nepal", "Katmandú"));
countryCapitalMap.insertar (par("China", "Beijing"));
countryCapitalMap.insertar (par("Francia", "París"));
// Crea un iterador para el mapa e Inicializa con begin
auto itr = countryCapitalMap.empezar();
// Iterar usando el iterador en el bucle while
mientras (itr!= countryCapitalMap.final())

std :: cout << itr->primero // Clave de acceso
<< ':'
<< itr->segundo // Valor de acceso
<< std::endl;
itr ++;

return 0;


Producción:

China: Pekín
Francia: París
India: Delhi
Nepal: Katmandú

Uso de rango basado en bucle for (versión C ++ 11 en adelante)

Si está utilizando la versión C ++ 11, esta es la forma más elegante de iterar sobre el mapa en C++. Puede evitar los bucles cubersome tradicionales y usar esto en su lugar.


#incluir
#incluir
#incluir
usando el espacio de nombres std;
int main ()
// Inicializar un mapa
mapa countryCapitalMap;
// Insertar diferentes elementos en el mapa
countryCapitalMap.insertar (par("India", "Delhi"));
countryCapitalMap.insertar (par("Nepal", "Katmandú"));
countryCapitalMap.insertar (par("China", "Beijing"));
countryCapitalMap.insertar (par("Francia", "París"));
// Iterar usando el iterador en el bucle for
para (const auto & ele: countryCapitalMap)
cout <
return 0;


Producción:
China: Pekín
Francia: París
India: Delhi
Nepal: Katmandú

Uso de bucle for basado en rango con pares clave-valor (versión C ++ 17 en adelante)

Esta versión es compatible desde c ++ 17 en adelante y proporciona una forma más flexible de iterar sobre el mapa. Puede acceder explícitamente al par clave-valor en el mapa, lo que proporciona una solución aún más legible.


#incluir
#incluir
#incluir
usando el espacio de nombres std;
int main ()
// Inicializar un mapa
mapa countryCapitalMap;
// Insertar diferentes elementos en el mapa
countryCapitalMap.insertar (par("India", "Delhi"));
countryCapitalMap.insertar (par("Nepal", "Katmandú"));
countryCapitalMap.insertar (par("China", "Beijing"));
countryCapitalMap.insertar (par("Francia", "París"));
// Iterar usando el iterador en el bucle for
para (const auto & [clave, valor]: countryCapitalMap)
cout << key << ":" << value << "\n";

return 0;


Producción:
China: Pekín
Francia: París
India: Delhi
Nepal: Katmandú

Eso es todo acerca de cómo iterar sobre el mapa en C++. Codificación feliz!

Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...
Cómo mostrar el contador de FPS en juegos de Linux
Los juegos de Linux obtuvieron un gran impulso cuando Valve anunció el soporte de Linux para el cliente Steam y sus juegos en 2012. Desde entonces, mu...
Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...