Je te conseille l'utilisation de std::vector ou std::list.
Ex:
Code C/C++ :
// On peut aussi mettre std::list<int> au lieu de std::vector
typedef std::vector<int>::const_iterator iter;
std::vector<int> tab;
tab.push_back(5);
tab.push_back(15);
tab.push_back(85);
for (iter it = tab.begin(); it != tab.end(); ++it)
std::cout << *it << std::endl;
Certains templates ont une fonction resize mais cette fonction alloue un nouveau bloc mémoire de la taille voulue, copie les valeurs dans ce nouveau tableau et libère l'ancien.
Ce n'est pas le cas de std::vector. Il alloue une taille trop grande, d'une manière que l'on peut spécifier. Par défaut, plus on met de données dedans, et plus il s'élargit rapidement.
Quant à std::list, c'est en fait une liste chaînées en interne (c'est pour ça qu'il n'y a pas d'accesseur []).
Si on spécifie un .resize, il va tenter un realloc (toujours en allouant "trop" exprès, et uniquement si nécessaire), et n'ira pas bêtement recopier les données ailleurs.
________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question