C++ problème pop_back()

Fermé
SamSamXX Messages postés 22 Date d'inscription vendredi 20 novembre 2015 Statut Membre Dernière intervention 29 janvier 2018 - Modifié le 28 janv. 2018 à 10:14
SamSamXX Messages postés 22 Date d'inscription vendredi 20 novembre 2015 Statut Membre Dernière intervention 29 janvier 2018 - 29 janv. 2018 à 17:26
Bonjour j'ai un problème avec la fonction pop_back()

la valeur du dernier élément du tableau ne s'éfface pas
<code>
vector<int> tableau(3, 2); //Un tableau de 3 entiers valant tous 2

tableau.pop_back(); //il reste 2 éléments valant tous 2
tableau.pop_back(); //il reste 1 élement valant 2

cout << tableau[0] << endl;
cout << tableau[1] << endl;
cout << tableau[2] << endl;



J'ai fait exprès d'afficher :
<code>
cout << tableau[1] << endl;
cout << tableau[2] << endl;


Pour voir si la valeur se supprimer mais au final ça m'affiche quand même:
2
2
2
je ne comprend pas.

Merci de vos réponses.

1 réponse

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
28 janv. 2018 à 12:53
Bonjour,

Essayer d'utiliser un indice de tableau en dehors des limites est ce que l'on appelle un "undefined behaviour". Cela signifie que tout est possible (y compris retourner ce qu'il y avait avant, planter, faire exploser la planète, ...). Essaie à la place la fonction at() qui elle contrôle.
cout << tableau.at(0) << endl;
cout << tableau.at(1) << endl;  // => exception
0
SamSamXX Messages postés 22 Date d'inscription vendredi 20 novembre 2015 Statut Membre Dernière intervention 29 janvier 2018
29 janv. 2018 à 17:26
Hello,

Merci ça fonctionne bien ,
0