Hello,
J'ai un vecteur pour lequel j'aimerais trouver la position d'un élément donné (unicité garantie en amont). Cet indice sera utilisé pour récupérer un élément dans un autre vecteur.
L'algorithme find me donne un itérateur, mais ensuite ?
MErci.
Hello,
J'ai un vecteur pour lequel j'aimerais trouver la position d'un élément donné (unicité garantie en amont). Cet indice sera utilisé pour récupérer un élément dans un autre vecteur.
L'algorithme find me donne un itérateur, mais ensuite ?
MErci.








ou mieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part int pos = it_found - vector.begin();
Code : Sélectionner tout - Visualiser dans une fenêtre à part int pos = std::distance(vector.begin(),it_found);
S'il s'agit d'un vecteur, les éléments sont contaigus, du coup, tu peux faire une soustraction entre le pointeur donné et le pointeur de début. Il y a une fonction std pour ça mais je ne me souviens plus du nom.
Edit:
Camboui m'a devancé, c'est std::distance que je cherchais ^^
Merci !
En revanche, le type de retour de la fonction distance m'a l'air assez tordu, dans la documentation.
On peut sans soucis mettre ça dans un int ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 typedef std::iterator_traits<std::vector<A>::iterator >::difference_type type_distance_vect_A; type_distance_vect_A ma_distance; ma_distance = std::distance(vect.begin(),vect.end());
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Justement.
Quelle est la relation entre ça et un int ?









Partager