Bonjour,

je viens vers vous car je me pose une question concernant le fonctionnement de list::erase.

J'ai remarqué par erreur que le code suivant supprimait un élément de la list A. Pourquoi cela ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
list<double> A;
 
for ( int i = 0; i<10; i++)
{
    A.push_back((double)i);
}
 
list<double> B;
 
for ( int i = 9; i!=-1; i--)
{
    B.push_back((double)i);
}
 
list<double>::iterator it;
 
it = A.begin();
 
it++;
it++;
 
B.erase(it);
Bien sur je sais qu'it est initialisé sur A. Ma question porte plutôt sur l'intérêt d'écrire B.erase(it) plutôt que erase(it) si cela revient au même. Est ce uniquement pour transmettre le type de données ?

Merci d'avance pour vos réponses.