99 votes

Comment ajouter un élément à un tableau C++ ?

Je veux ajouter un int dans un tableau, mais le problème est que je ne sais pas quel est l'indice actuel.

int[] arr = new int[15];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;

Ce code fonctionne parce que je sais à quel index je l'assigne, mais que faire si je ne connais pas l'index...

En PHP, je peux simplement faire arr[]=22; qui ajoutera automatiquement 22 à l'indice vide suivant du tableau. Mais en C++, je ne peux pas faire cela, cela me donne une erreur de compilation. Que suggérez-vous ?

17 votes

En fait, "ce code" ne se compile même pas. "int[] arr" n'est pas la façon dont on déclare un tableau en C/C++ -- c'est "int arr[]". Mais votre code a des problèmes plus sérieux, que les autres réponses abordent.

6voto

dirkgently Points 56879

Je suis entièrement d'accord avec le vector lors de l'implémentation d'un tableau dynamique. Cependant, gardez à l'esprit que la STL met à votre disposition une multitude de conteneurs qui répondent à différentes exigences d'exécution et que vous devez choisir avec soin. Par exemple Pour une insertion rapide à l'arrière, vous avez le choix entre un conteneur vector et un deque .

Et j'allais oublier, avec un grand pouvoir vient une grande responsabilité :-) Depuis vector sont de taille flexible, ils se réallouent souvent automatiquement pour s'adapter à l'ajout d'éléments, et il faut donc se méfier de l'invalidation des itérateurs (oui, cela s'applique aussi aux pointeurs). Cependant, tant que vous utilisez operator[] pour accéder aux éléments individuels dont vous êtes sûr.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X