Ciao, prima di tutto ti consiglio di controllare il tuo programma cercando eventuali array overflow, i programmi fatti con visual C++ a volte crascano se si dealloca un vettore sul quale c'è stato overflow.
In alternativa se vuoi utilizzare gli std::vector di seguito trovi un programma demo (di tipo console):
#include <vector>
using namespace std;
typedef vector<int> INT_VEC
typedef vector<INT_VEC> VEC_OF_VEC
int main(int argc, char **argv){
int n=5;
VEC_OF_VEC a;
// Ridimensiono a in modo che contenga due elementi
a.resize(2);
// Inizializzo i vettori di interi
for(int k=0; k<2; k++){
// Ridimensiono il vettore in modo che sia lungo n
a[k].resize(n);
}
// Svuoto i vettori contenuti in a
for(int k=0; k<2; k++){
// Svuoto il vettore alla posizione k in a
a[k].clear();
}
// Svuoto il vettore a
a.clear();
return 0;
Per prima cosa ho deciso che non serve allocare i vettori in questo caso, ho fatto che il primo vettore
a è un vetore di oggetti vector che contengono interi. Così come ho utilizzato gli oggetti vector, una volta creati, puoi accede agli elementi come con un normale vettore del C. Sappi però che sono fatti in modo che tu puoi aggiungere nuovi elementi nel vettore in qualsiasi momento, il vettore viene automaticamente ridimensionato. Per far ciò devi usare i metodi
insert o
push_back dell'oggetto, in alternativa fai prima un resize con la nuova dimensione è poi accedi hai nuovi elementi con la notazione
a[k].
Sperò di esserti stato utile . Ciao