Bonjour,
Je débute en C++...
J'ai créé un tableau de 8 ints :
J'aimerais pouvoir, par la suite, ajouter une case à mon tableau "tab" ci-dessus.Code:int *tab = new int[8];
1) Est-ce possible ?
2) Si oui, comment fait-on ?
Version imprimable
Bonjour,
Je débute en C++...
J'ai créé un tableau de 8 ints :
J'aimerais pouvoir, par la suite, ajouter une case à mon tableau "tab" ci-dessus.Code:int *tab = new int[8];
1) Est-ce possible ?
2) Si oui, comment fait-on ?
Ce n'est pas possible, en fait. Il faut allouer un nouveau bloc, plus grand, et recopier les éléments. Ce que fait realloc() en C, en fait. C'est pas disponible en C++ avec new ce genre de bestiaux, à ma connaissance.
Le plus simple est donc d'utiliser les vector :)
On ne peut pas rajouter une "case", c'est comme un tableau normal !
EDIT : trop tard... :aie:
Qu'est-ceu queu c'est queu ça ?8OCitation:
Envoyé par Miles
C'est un composant (classe) de la STL : http://c.developpez.com/faq/cpp/?page=STL
Ah, je vois... encore une bibliothèque !:roll:Citation:
Envoyé par Tipoun
Merci de ta réponse, j'ai réussi !:D
C'est la bibliothèque standard du C++ ;)
c'est une bibliothèque quand même !:P
Sauf qu'il n'y a rien à faire pour l'installer, elle est fournie avec le compilateur, alors pourquoi se priver de ces conteneurs qui ont fait leurs preuves ?
Sinon, si tu veux vraiment pouvoir ajouter des cases, créé des listes chainées, c'est une suite de cellules contenant à la fois la donnée et l'adresse de cellule suivante, c'est souvent très pratique, tu trouveras plus d'informations ici :
http://chgi.developpez.com/pile/
Par ailleurs, d'autres principes algorithmiques sont encore plus utiles tels que les arbres mais là, je m'égare… :mrgreen:
On est en C++, les listes chaînées, c'est déjà tout fait. Ca s'appelle std::list. Vive la STL et ses conteneurs ;)
de toute façon, avec C++ on peut tout faire :D
En C aussi, ce n'est pas la question. Ce qui est dommage, c'est qu'on passe notre temps à refaire ce que les autres ont déjà fait, vérifié, optimisé et qu'on a au bout de son doigt.