es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo iterar un map>?

Tengo un map<int, vector > como este:

#include <iostream>
#include <map>
#include <vector>

using namespace std;

int main() {

map&lt;int, vector &lt;int&gt;&gt; someMap;
someMap[5] = {5, 2, 3, 7};
someMap[151] = {5, 9, 20};

return 0;

}

Necesito encontrar el último elemento del vector en cada valor del map. La salida debe ser como esta:

7
20

Gracias 🙂

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, podemos usar iteradores para iterar sobre el mapa y acceder al último elemento de cada vector. Aquí está el fragmento de código para lograrlo:

    “`c++
    #include
    #include

    #include

    using namespace std;

    int main() {
    map<int,></int,>> someMap;
    someMap[5] = {5, 2, 3, 7};
    someMap[151] = {5, 9, 20};

    // iterar a través del mapa
    for(auto it = someMap.begin(); it != someMap.end(); ++it) {
        // acceder al último elemento del vector
        int ultimoElemento = it->second.back();
        // imprimir el último elemento
        cout << ultimoElemento << endl;
    }
    
    return 0;
    

    }


    La salida de este código será:

    7
    20
    “`

    Explicación:

    • Declaramos un map<int,></int,><int>> llamado someMap y lo llenamos con datos.
    • Iteramos a través de someMap usando un bucle for y un iterador de mapa (auto it = someMap.begin()). someMap.end() nos da el final del mapa.
    • Para cada elemento, accedemos al vector usando it->second.
    • Usamos la función back() para acceder al último elemento del vector.
    • Imprimimos el último elemento usando cout << ultimoElemento << endl.

Comments are closed.