Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche element dans un vector/list

4 réponses
Avatar
Gib
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

4 réponses

Avatar
Patrick Mézard
Gib wrote:
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

Avatar
Michaël Delva
"Gib" wrote in
news:c8t0lc$efq$:

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é)

Avatar
Gib
ok merci j'ai pigé :)


Gib
Avatar
Anthony Fleury
Gib wrote:

Bonjour,


Bonjour,

lorsque qu'on cherche si un element X appartient à une
list/vector, on utilise la fonction
" find (v.begin(), v.end().X) "


[...]


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