List et vector
gg
-
gg -
gg -
Bonjour, une question toute bete:
Quand on utilise les conteneurs prédéfinis de la librairie STL qui s'appellent "vector", on accede tout naturellement aux iéme élément en faisant Vect[i] où Vect est un vector.
Mon probleme est le suisvant j'utilise "list" qui est très similaire à vector pourtant je ne trouve pas coment aceder aux ième élément !!!!
En regardant l'aide on voit effectivement que l'operateur crochet n'est pas définis! Mais alors comment fait-on? (dépit)
Y at'il une astuce genre list(i) ou list.give(i) ou j'en sai riens?,,,
Merci de vos réponses.
ps: ne me sortez pas qu'il faut redéfinir l'opeérateur crochet, je suis persuadé que c'est implementé quelqupart par défaut...
Quand on utilise les conteneurs prédéfinis de la librairie STL qui s'appellent "vector", on accede tout naturellement aux iéme élément en faisant Vect[i] où Vect est un vector.
Mon probleme est le suisvant j'utilise "list" qui est très similaire à vector pourtant je ne trouve pas coment aceder aux ième élément !!!!
En regardant l'aide on voit effectivement que l'operateur crochet n'est pas définis! Mais alors comment fait-on? (dépit)
Y at'il une astuce genre list(i) ou list.give(i) ou j'en sai riens?,,,
Merci de vos réponses.
ps: ne me sortez pas qu'il faut redéfinir l'opeérateur crochet, je suis persuadé que c'est implementé quelqupart par défaut...
A voir également:
- List et vector
- List disk - Guide
- Directory list & print - Télécharger - Divers Utilitaires
- Mailing list gmail - Guide
- Zn-401s code list - Forum Téléviseurs
- Rm-014s+ code list - Forum TV & Vidéo
2 réponses
Non, je ne croisd pas que l'opérateur [] soit défini pour la list.
La doc de la STL : www.sgi.com/tech/stl => fo commencer par là...
Une solution
tu veux l'indice n
i=0;
list taliste;
list::const_iterator iter;
iter = taliste.begin();
while(i<n && iter!=taliste.end())
{
++i;
++iter;
}
après cette boucle, tu vérifies que n=i pasque si c pas le cas, ça veut dire que l'indice demandé dépasse la liste... Si n=i alors iter est un pointeur sur l'élément que tu cherches (attention donc à la syntaxe -> et pas .)
@++
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
La doc de la STL : www.sgi.com/tech/stl => fo commencer par là...
Une solution
tu veux l'indice n
i=0;
list taliste;
list::const_iterator iter;
iter = taliste.begin();
while(i<n && iter!=taliste.end())
{
++i;
++iter;
}
après cette boucle, tu vérifies que n=i pasque si c pas le cas, ça veut dire que l'indice demandé dépasse la liste... Si n=i alors iter est un pointeur sur l'élément que tu cherches (attention donc à la syntaxe -> et pas .)
@++
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
Effectivement quand on défini l'itérateur:
list<T>::iterator ITE,
alors il suffit de faire (*ITE) pour acceder à l'élement, c'est tout con!! ou plus précisement *(ITE+i) pour le ième élément.
Merci de ta réponse qui m'a de toute facon éclaieré
A+