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

C++ Discussion :

Retourner un itérateur sur un vector


Sujet :

C++

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    32
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 32
    Points : 21
    Points
    21
    Par défaut Retourner un itérateur sur un vector
    Bonjour

    J'ai une classe World contient un vecteur contenant des pointeurs vers des objets de type Body.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    std::vector<Body*> bodyList;
    J'ai créer la fonction ci-dessous dans la classe World qui retourne un itérateur sur le début de mon vecteur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    inline std::vector<Body*>::iterator World::getBodyListStartIterator() const {
        return bodyList.begin();
    }
    Mais j'obtiens l'erreur suivante à la compilation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error: conversion from ‘__gnu_cxx::__normal_iterator<Body* const*, std::vector<Body*, std::allocator<Body*> > >’ to non-scalar type ‘__gnu_cxx::__normal_iterator<Body**, std::vector<Body*, std::allocator<Body*> > >’ requested
    Est-ce que quelqu'un saurait ce qui ne joue pas ?

    Merci d'avance de votre aide

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    comme ta fonction est const, elle doit retourner un const_iterator

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    inline std::vector<Body*>::const_iterator World::getBodyListStartIterator() const {
        return bodyList.begin();
    }
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre averti

    Inscrit en
    Juillet 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 186
    Points : 350
    Points
    350
    Par défaut
    Bonjour,

    Ceci devrait faire l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    inline std::vector<Body*>::const_iterator World::getBodyListStartIterator() const {
        return bodyList.begin();
    }
    Comme c'est une fonction membre const, elle n'a accès qu'au fonctions membres const de la variable membre bodyList, et donc uniquement à la fonction membre de std::vector begin() qui renvoie un const_iterator.

    Didier

  4. #4
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    32
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 32
    Points : 21
    Points
    21
    Par défaut
    A oui biensûr. En tous cas merci beaucoup pour vos réponses très rapides.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Retourner une référence sur un std::vector
    Par Rodrigue dans le forum C++
    Réponses: 12
    Dernier message: 13/10/2007, 16h30
  2. ne pas retourner de données sur du SQL
    Par GAGNON dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 24/06/2005, 10h17
  3. std::sort() sur std::vector()
    Par tut dans le forum SL & STL
    Réponses: 20
    Dernier message: 05/01/2005, 19h15
  4. [debutant STL] question sur les vectors
    Par killerjeff dans le forum SL & STL
    Réponses: 13
    Dernier message: 19/08/2004, 17h32
  5. Declaration de fonction retournant un pointeur sur fonction
    Par pseudokifaitladifférence dans le forum C
    Réponses: 5
    Dernier message: 11/08/2003, 19h37

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