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 :

Un iterateur dans c++?


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Juin 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Un iterateur dans c++?
    Bonjour à tous,

    Je suis débutant dans c++. J'aimerais faire une itération d’un objet comme dans le python.
    Dans mon carnet des enseignements j'ai trouvé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define mit(c,itr) for(__typeof((c).begin()) itr=(c).begin();itr!=(c).end();itr++)
    Malheureusement, je le ne comprends pas et je ne vois pas comment je pourrais l’utiliser. Vous pouvez me donner un exémple ?

    Merci pour votre temps !
    Cordialement,

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Tu utilises les itérateurs de la STL.
    La fonction begin récupère l'itérateur du premier élément.
    Et ensuite on passe d'élément en élément juste avec 1 incrémentation (itr++)
    Et la fonction end récupère l'itérateur du dernier élément afin d'arrêter la boucle.

    Regarde la documentation de la fonction begin, lien cplusplus.com en anglais

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Ça itère quoi sur un objet en Python ?
    Une itération est sensée se faire sur une collection, pour itérer sur chacun d'eux, pas sur un unique objet.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    Bonjour,

    La macro que tu as trouvée est une vieillerie qui s'écrit désormais en C++:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ( auto&& x : c ) {  // pour x parcourant tous les éléments de c
        std::cout << x;     // par exemple: on peut afficher x
    }
    avec ta macro la syntaxe pour l'utiliser serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mit ( c , itr ) {       // itr itère sur tous les éléments de c
        std::cout << *itr; // par exemple: on affiche l'élément itéré (sans oublier l'étoile)
    }
    C'est donc plus lourd à utiliser et ta macro utilise un mot non portable et désormais périmé __typeof().

  5. #5
    Membre à l'essai
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Juin 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Super!! C'est très claire maintenant.
    Merci à tous!

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

Discussions similaires

  1. typedef dans les iterateurs
    Par Narann dans le forum Débuter
    Réponses: 2
    Dernier message: 29/10/2018, 15h18
  2. problème dans mon template Iterateur
    Par nico11323 dans le forum C++
    Réponses: 1
    Dernier message: 23/12/2016, 17h25
  3. iterateur d'un conteneur template dans une classe template
    Par coyotte507 dans le forum Langage
    Réponses: 2
    Dernier message: 03/07/2009, 13h08
  4. Réponses: 8
    Dernier message: 07/04/2006, 08h03
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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