 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Gib Guest
|
Posted: Mon May 24, 2004 2:25 pm Post subject: Recherche element dans un vector/list |
|
|
Bonjour, lorsque qu'on cherche si un element X appartient à une list/vector,
on utilise la fonction
" find (v.begin(), v.end().X) "
Mais après on fait une comparaison entre X et v.end()
" if (it !=v.end())
cout<<" X est un element de v n");
else
cour<<"X n'est pas un element de v");
Question ==> Pourquoi fait on une comparaison entre X où plutot it (*it=X)
et le dernier élément de v ?
Merci de votre aide
Gib
|
|
| Back to top |
|
 |
Patrick Mézard Guest
|
Posted: Mon May 24, 2004 3:19 pm Post subject: Re: Recherche element dans un vector/list |
|
|
Gib wrote:
| Quote: | Bonjour, lorsque qu'on cherche si un element X appartient à une list/vector,
on utilise la fonction
" find (v.begin(), v.end().X) "
Mais après on fait une comparaison entre X et v.end()
" if (it !=v.end())
cout<<" X est un element de v n");
else
cour<<"X n'est pas un element de v");
Question ==> Pourquoi fait on une comparaison entre X où plutot it (*it=X)
et le dernier élément de v ?
|
std::find prend un intervalle borné par deux itérateurs [i1, i2[ et
trouve l'itérateur pointant sur le premier élément égal à l'élément
cherché ou bien renvoie i2. C'est comme ça que marche la fonction.
Qu'est-ce qui te chiffonne là dedans ?
Patrick Mézard
|
|
| Back to top |
|
 |
Michaël Delva Guest
|
Posted: Mon May 24, 2004 4:51 pm Post subject: Re: Recherche element dans un vector/list |
|
|
"Gib" <bug (AT) asrun (DOT) org> wrote in
news:c8t0lc$efq$1 (AT) news-reader2 (DOT) wanadoo.fr:
| Quote: | Question ==> Pourquoi fait on une comparaison entre X où plutot it
(*it=X) et le dernier élément de v ?
Merci de votre aide
Gib
|
Pour être sûr qu'il y a bien l'élément que tu cherches dans ton conteneur?
(.end() <=> pas trouvé)
|
|
| Back to top |
|
 |
Gib Guest
|
Posted: Mon May 24, 2004 5:22 pm Post subject: Re: Recherche element dans un vector/list |
|
|
ok merci j'ai pigé :)
Gib
|
|
| Back to top |
|
 |
Anthony Fleury Guest
|
Posted: Mon May 24, 2004 7:45 pm Post subject: Re: Recherche element dans un vector/list |
|
|
Gib wrote:
Bonjour,
| Quote: | lorsque qu'on cherche si un element X appartient à une
list/vector, on utilise la fonction
" find (v.begin(), v.end().X) "
|
[...]
| Quote: |
Question ==> Pourquoi fait on une comparaison entre X où plutot it (*it=X)
et le dernier élément de v ?
|
Petit ajout à ce qu'ont dit les autres contributeurs, et surtout petite
correction. v.end() n'est pas le dernier élement de v. On ne peut pas le
déréferencer entre autre sous peine de problème avec le système
d'exploitation si il y en a un. On fait la comparaison avec la position
d'un élement fictif _suivant_ le dernier élement, donc si l'on est arrivé à
cet "élement" qui est en dehors du tableau, c'est que X n'est *pas* dans le
tableau. [entre autre avant de vérifier que it != v.end() on n'a à ma
connaissance "pas le droit" d'écrire *it]
Anthony - qui espère cette fois avoir employé exactement les bons termes, je
vais bien progresser à force de poster ici !
--
"You could be my unintended, choice to live my life extended
You should be the one I'll always love, I'll be there as soon as I can
But I'm busy mending broken pieces of the life I had before"
(C) Muse - Unintended
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|