Avatar ·

¿Cómo iterar correctamente todos los elementos de un std::map en C++?

¡Hola a todos! Recientemente comencé a estudiar C++ y me encontré con esta tarea: necesito recorrer todos los pares clave-valor en un std::map y, por ejemplo, mostrarlos en pantalla o realizar alguna operación. Entiendo que map es un contenedor asociativo, donde cada elemento se almacena como std::pair, pero no puedo entender la sintaxis de los bucles. Intenté escribir así: ```cpp #include #include #include int main() { std::map ages; ages["Alice"] = 30; ages["Bob"] = 25; ages["Charlie"] = 35; // Mi primer intento — esto claramente está mal for (int i = 0; i < ages.size(); i++) { std::cout << ages[i] << std::endl; // error de compilación } } ``` Pero esto, por supuesto, no funciona porque operator[] en map toma una clave, no un índice. Luego me topé con los iteradores y escribí algo como: ```cpp for (std::map::iterator it = ages.begin(); it != ages.end(); ++it) { std::cout << it->first << ": " << it->second << std::endl; } ```