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 :

vector : iterator.. besoins d'une petite précision


Sujet :

SL & STL C++

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Points : 144
    Points
    144
    Par défaut vector : iterator.. besoins d'une petite précision
    Bonjour,

    J'aurais besoin d'une petite précision...

    Lorsqu'on fait un vector.end() pour avoir l'itérateur de fin sur un vector... est-ce que la valeur retournée par le .end() permet d'accéder au dernier élément du vector ou pas ?

    Parce que, j'avais un vector d'un seul élément, j'ai regardé ce que me donnait le .begin() et le .end() et ce n'est pas les mêmes adresses...

    Du coup, dans une boucle, à la fin je regardais la dernière valeur et donc quand on tapait sur l'adresse donnée par le .end(), forcément ca plantait, on n'était pas dans le vector, donc j'en conclus que le .end() ne donne pas un pointeur sur le dernier élément du vector mais juste après...

    Quelqu'un pour confirmer ?

    Merci
    ++

  2. #2
    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
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par italiasky Voir le message
    Bonjour,

    J'aurais besoin d'une petite précision...

    Lorsqu'on fait un vector.end() pour avoir l'itérateur de fin sur un vector... est-ce que la valeur retournée par le .end() permet d'accéder au dernier élément du vector ou pas ?
    Ou pas:
    Returns an iterator referring to the past-the-end element in the vector container.
    Citation Envoyé par italiasky Voir le message
    Parce que, j'avais un vector d'un seul élément, j'ai regardé ce que me donnait le .begin() et le .end() et ce n'est pas les mêmes adresses...

    Du coup, dans une boucle, à la fin je regardais la dernière valeur et donc quand on tapait sur l'adresse donnée par le .end(), forcément ca plantait, on n'était pas dans le vector, donc j'en conclus que le .end() ne donne pas un pointeur sur le dernier élément du vector mais juste après...

    Quelqu'un pour confirmer ?
    Oui!

    Autant first est le premier élément, autant end est toujours la fin de l'itération et non pas le dernier élément. Donc, end ne doit pas être déréférencé. Ne serait-ce que pour distinguer un itération vide d'une itération sur un seul élément.

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Points : 144
    Points
    144
    Par défaut
    Ok merci, ca confirme donc ce que j'ai observé

    Bonne journée

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/04/2009, 21h56
  2. Besoin d'une petite précision pour exp, cos et sin.
    Par UiYuki dans le forum Mathématiques
    Réponses: 1
    Dernier message: 17/10/2008, 23h22
  3. besoin d'une petite correction..
    Par yakamone3 dans le forum C
    Réponses: 3
    Dernier message: 07/06/2006, 20h30
  4. Besoin d'une petite aide:onclick sur une cellule
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/11/2005, 08h47

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