fykman a écrit a écrit :
Je voudrais recuperer l'iterateur d'un object dans un vecteur, les codes suivants sont t'ils corrects :
|
Seul le deuxième est universel.
Le premier n'est bon que pour vector, et à condition de lui avoir fait réserver la mémoire (reserve) au préalable.
Au fait, c'est iterator dans un source.
fykman a écrit a écrit :
Et si j'utilise une liste a la place d'un vecteur, l'iterateur seras aussi invalidé ou non ?
|
Non.
Kristoph a écrit a écrit :
Les iterateurs sur un vecteur sont invalidés quand tu ajoute ou retire un element avant cet iterateur.
|
Ajoutes ou retires tout court, vu que s'il y a réallocation c'est l'ensemble qui est concerné.
gloop a écrit a écrit :
effectivement, end () pointe après la fin, mais end ()-1 n'est pas forcément une bonne idée.
|
Parce que + ou - équivalent à un accès aléatoire, ce qui marche avec un vector, mais pas avec tous les conteneurs.
Ceci est universel:
Code :
- it = vect.end();
- --it;
- it = vect.rbegin().base(); //ou l'exemple de gloop
|
Message édité par Musaran le 08-02-2003 à 03:15:52
---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone