vector : Obtenir l'indice à partir d'un itérateur
Bonjour,
Je pense que la réponse est négative, mais je voudrais une confirmation (infirmation ?) de spécialistes:
Est-il possible d'obtenir le rang (l'indice) d'un élément d'un "vector" à partir d'un itérateur qui pointe sur un élement ?
Exemple pratique où ça pourrait être utile:
Pour deux vecteurs "parallèles", on a un itérateur qui parcours le premier en recherchant un élement, et on veut accéder directement à l'élément de même rang dans l'autre vecteur
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| vector<int> v1;
vector<int> v2;
...
// recherche d'une valeur dans v1
vector<int>::iterator result;
result = find( v1.begin(), v1.end(), num_to_find );
// ici, comment obtenir idx tel qu'il corresponde à la position de 'result' dans v1 ?
uint idx = ????
v2[idx] = ma_nouvelle_valeur; |
Je précise (pas évident dans l'exemple) que l'on souhaite en plus connaitre (remonter à l'utilisateur) la _position_ dans le tableau (idx), il ne s'agit pas juste de modifier v2.
Merci pour vos réponses