C++ problème pop_back()

SamSamXX Messages postés 32 Statut Membre -  
SamSamXX Messages postés 32 Statut Membre -
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

  1. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     
    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
    1. SamSamXX Messages postés 32 Statut Membre
       
      Hello,

      Merci ça fonctionne bien ,
      0