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

Langage C++ Discussion :

algorithme advance() version template


Sujet :

Langage C++

  1. #1
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 135
    Points : 83
    Points
    83
    Par défaut algorithme advance() version template
    bonjours,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    template <class InputIterator, class Distance>
      void advance (InputIterator& i, Distance n);
    est-ce-que cella veur dire que je peut utiliser la version
    template <class InputIterator, class Distance>??

    car j'ai le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    map<xx,xx>::const_iterator iter;
    map<xx,xx>::const_iterator stop;
    iter = find(aa.begin(), aa.end(), valeur_rechercher);
     
    //ET JE VOUDRAI METRE QUELQUE CHOISE DU GENRE>>>
    stop = advance(iter, temps);  //sans que iter soit incrementer
    vous voyer une solution, ou plutot mon erreur de lecture??
    Et j'arrive pas a savoir quelle valeur prend iter (dans le cas normale d'utilisation de la fonction), si je depasse la taille du conteneur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    list<int> a {1,2,3,4,5,6};
    iter = a.begin();
    advance(iter,22);
    //iter == ?????
    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Et j'arrive pas a savoir quelle valeur prend iter (dans le cas normale d'utilisation de la fonction), si je depasse la taille du conteneur:
    Incrémenter au-delà de la taille de ta séquence levera un comportement indéfini.
    En effet, pour simplifier tu peux considérer que advance va faire ++it n fois. Sauf que ++it est une opération interdite si l'itérateur est l'itérateur past-the-end, que tu peux atteindre si ton n est trop grand.

    Si tu ne veux pas que iter soit modifié, il suffit de fournir une copie.
    Boost ftw

  3. #3
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 135
    Points : 83
    Points
    83
    Par défaut BOF
    bon je vais faire au plus simple pour une fois. merci comme meme

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

Discussions similaires

  1. [Free Pascal] Version 2.2.4a pour GameBoy Advance et Nintendo DS
    Par Alcatîz dans le forum Free Pascal
    Réponses: 0
    Dernier message: 01/06/2009, 15h45
  2. Variable versionning dans Template
    Par catjav dans le forum NetBeans
    Réponses: 0
    Dernier message: 21/04/2009, 11h57
  3. proc template : erreur pour mise à jour la version le XP Tagsets
    Par sasseur dans le forum ODS et reporting
    Réponses: 0
    Dernier message: 26/11/2008, 17h42
  4. [Joomla!] Version 1.5 et template
    Par kurkaine dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 04/04/2007, 07h23

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