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 :

boucle for étrange


Sujet :

C++

  1. #1
    Invité
    Invité(e)
    Par défaut boucle for étrange
    Bonjour a tous,

    Quelqu'un pourrait m'éclairer sur cette boucle ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (auto y:s) std::cout << y << " ";

    Comment se passe l'affectation ? si quelqu'un pourrait me réécrire cette boucle version while je comprendrais plus vite je pense

    je comprend auto et j'ai deja fait des boucle for avant mais la je comprend pas trop ,

    merci !
    Dernière modification par Invité ; 15/02/2018 à 00h34.

  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
    Avant que quelqu'un qui s'y connaisse te réponde, en jetant un œil à la documentation std::regex_search (<- lien), cela s'appelle un itérateur ("iterator" en anglais)

    C'est un concept générique qui permet de parcourir des collections hétérogènes.
    Un exemple plus parlant avec un std::vector

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int sum = 0;
    using Iter = std::vector<int>::const_iterator;
    for (Iter it = vec.begin(); it!=vec.end(); ++it) {
        sum += *it;
    }

  3. #3
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 471
    Points : 6 110
    Points
    6 110
    Par défaut
    Bonjour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(auto x : m) std::cout << x << " ";
    équivaut à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    {
        auto iterateur = m.begin();
        auto fin       = m.end();
        for(; iterateur != fin; ++iterateur) {
            auto x = *iterateur;
            std::cout << x << " ";
        }
    }
    qui équivaut à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
        auto iterateur = m.begin();
        auto fin       = m.end();
        while(iterateur != fin) {
            auto x = *iterateur;
            std::cout << x << " ";
            ++iterateur;
        }
    }
    La forme for(range_declaration : range_expression) correspond au range-based for loop apparu en C++11.
    Les règles précises, un peu compliquées, sont détaillées ici : http://en.cppreference.com/w/cpp/language/range-for

  4. #4
    Invité
    Invité(e)
    Par défaut
    super ,merci
    Dernière modification par Invité ; 15/02/2018 à 00h04.

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

Discussions similaires

  1. Boucle for dans un script cmd
    Par nicolas.ganache dans le forum Développement
    Réponses: 4
    Dernier message: 19/07/2004, 16h07
  2. Réponses: 3
    Dernier message: 06/07/2004, 10h21
  3. [Debutant] Batch et Boucle for
    Par ludovic.fernandez dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 06/05/2004, 19h21
  4. [Swing][boucles] for, do, if .....comment faire simple?
    Par chastel dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 02/05/2004, 22h49
  5. [langage] boucle "for" modification du pas
    Par K-ZimiR dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2004, 11h54

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