Sto tentando di aggiungere valori a un vettore 2D utilizzando entrambi gli indici. Quando eseguo il mio programma, ricevo il messaggio di Windows che dice che il programma ha smesso di funzionare. L'uso di Dev-C++ per il debug ha mostrato che c'era un errore di segmentazione (non sono sicuro di cosa significhi). Per favore non suggerire l'uso di array, devo usare i vettori per questo compito.Assegnazione di valori al vettore 2D utilizzando gli indici
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char** argv) {
vector< vector<int> > matrix;
cout << "Filling matrix with test numbers.";
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
matrix[i][j] = 5; // causes program to stop working
}
}
}
Ho creato un banco di prova dove voglio riempire una matrice 3x3 con il valore 5. Ho il sospetto che ha qualcosa a che fare con la dimensione del vettore 2D non essere definito in modo specifico. Come potrei riempire un vettore 2D con valori usando gli indici?
Perché è necessario avere matrice [i] .resize (4) all'interno del ciclo for? – AvP
Perché hai un vettore di vettori. Quindi ciascuno dei vettori interni ha bisogno di una dimensione di 4, quindi il vettore esterno contiene 4 di questi vettori interni. – CoryKramer
Per il mio caso, voglio che questo vettore 2D rappresenti una matrice 3x3. Quindi non dovrebbe essere matrix [i] .resize (3), e il vettore esterno ne conterrebbe 3? – AvP