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 almacenar un unordered_set en un vector?

Quiero usar un vector para almacenar varios unordered_set.

Aquí están mis códigos de prueba:

#include <unordered_set>
#include <vector>

using namespace std;

int main(){
    vector<><int>> v1;
    unordered_set<int> s1 = {1,2}, s2 = {3,2};
    v1.push_back(s1);
    v1.push_back(s2);
    for (auto& s : v1[0]) {
        cout << s << " ";
    }
}

Y obtengo “Segmentation fault (core dumped)”.

Mi pregunta es: ¿Cómo debo modificar mis códigos?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El vector v1 está actualmente vacío, por lo que al intentar acceder a sus elementos con el operador [], estás accediendo a una memoria fuera de límites. Para solucionar este problema, necesitas inicializar el vector con el tamaño correcto antes de acceder a sus elementos. Puedes hacer esto utilizando el método resize:

    “`c++
    #include
    #include
    using namespace std;

    int main(){
    vector<>> v1(2); // inicializar el vector con tamaño 2
    unordered_set
    s1 = {1,2}, s2 = {3,2};
    v1[0] = s1;
    v1[1] = s2;
    for (auto &s : v1[0]) {
    cout << s << ” “;
    }
    }
    “`

    En este código modificado, el vector v1 se inicializa con tamaño 2, por lo que puedes acceder de forma segura a sus elementos utilizando el operador [].

Comments are closed.