Bonjour à tous,
J'ai un petit problème, je ne sais pas initialiser un pointer de vector(de vector de pointer...).
Je travaille sur un code pour construire une sorte de recursivité semi-dynamique variable , je n'ai pour l'instant pas trouvé de définition plus simple...
Dans la première étape de ma quête mysterieuse, voici ce que j'essaye de faire:
(c'est beaucoup plus simple)
je crée un vector de pointeurs vers des entiers.
Je le remplis avec 4 pointeurs vers quatres entiers.
Puis je souhaiterais simplement créer un autre vector qui contient un pointeur vers le vector crée auparavant...
J'ai entendu dire que c'est pas terrible de faire cela car lorsque l'on change le vector, la reference n'est plus valable, mais pour l'instant je souhaite garder une taille de vector fixe, avant d'explorer d'autre possibilités plus adaptées à mes besoins.
Tout se passe bien jusqu'à l'initialisation du 2ème vector. Et là se pose une multitude de questions... est-ce possible, faut-il allouer de la mémoire 'manuellement', en bref comment initialiser un pointeur de vecteur de pointeur (d'entiers)
#include <cstdlib>
#include
#include <vector>
using namespace std;
int main(int argc, char *argv[])
{
//Step 1
vector myVector2;
int* p1 = new int;
int* p2 = new int;
int* p3 = new int;
int* p4 = new int;
*p1 = 1;
*p2 = 5;
*p3 = 5;
*p4 = 26;
myVector2.push_back(p1);
myVector2.push_back(p2);
myVector2.push_back(p3);
myVector2.push_back(p4);
for (int i = 0; i < 4; i++)
{
cout << *myVector2[i] << "|";
}
cout << endl;
//Step 2
vector <vector*> myVector;
vector* p = new vector;
//*p=myVector2; // ?? Not possible
//p=&myVector2; // !! Only store the address
// ???????? how to initalise the pointer?????
myVector.push_back(p);
// Controls
cout << myVector2.size() << endl;
cout << myVector[0] << endl;
cout << &myVector2 << endl;
cout << p << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
C'est là ou y'a plein de points d'interrogation que je m'interroge...
J'espère que ma question est claire et qu'elle a un sens pour vous
Merci d'avance
(J'utilise Dev C++, environement Windows)
Gweno