IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

find : trouver la position d'un élément dans un vecteur


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut find : trouver la position d'un élément dans un vecteur
    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.

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int pos = it_found - vector.begin();
    ou mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int pos = std::distance(vector.begin(),it_found);

  3. #3
    Membre éclairé Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par défaut
    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 ^^

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    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 ?

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    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());

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Justement.

    Quelle est la relation entre ça et un int ?

  7. #7
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par oodini Voir le message
    Justement.

    Quelle est la relation entre ça et un int ?
    Ca va marcher sur un vecteur avec 5G elements sur une machine 64 bits qui a des int qui font 32 bits.

Discussions similaires

  1. Récupérer la position d'un élément dans la page
    Par lemok dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/07/2007, 15h46
  2. trouver la position relative du jour dans la semaine
    Par toomsounet dans le forum Langage
    Réponses: 1
    Dernier message: 05/02/2007, 16h06
  3. Trouver la position d'une chaîne dans une chaîne
    Par taka10 dans le forum Langage
    Réponses: 1
    Dernier message: 03/01/2007, 23h18
  4. retrouver la position d'un élément dans la page
    Par Choupinou dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 31/08/2006, 09h35
  5. position d'un élément dans une liste
    Par john491 dans le forum Général Python
    Réponses: 8
    Dernier message: 05/05/2006, 13h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo