Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Instruction for (foreach style)

Syntaxe d'utilisation

for ( loopVariable : collection ) statement;
for ( loopVariable : collection ) {
    [statement]...
} 

Cette syntaxe de boucle for a été introduite avec la version C++11. Elle permet de réaliser une itération sur tous les éléments d'une collection, sans avoir à gérer de compteur de boucle.

Cette syntaxe peut fonctionner sur toute collection itérable au sens de la STL : donc des deques, des vectors, des listes, ...

Attention, comme cette syntaxe a été introduite récemment dans le langage C++, certains compilateurs pourront nécessiter une option particulière. Par exemple, le compilateur GNU g++ requière l'utilisation de l'option -std=c++11.

Exemple de code

#include <cstdlib>

#include <iostream>
#include <list>
#include <string>
#include <vector>

using namespace std;


int main() {

    vector<string> vect;
    vect.push_back( "C" );
    vect.push_back( "C++" );
    vect.push_back( "Java" );

    list<string> lst;
    // Loop over a STL vector
    for( const string & str : vect ) {
        lst.push_front( str );
    }

    // Loop over a STL list
    for( const string & str : lst ) {
        cout << str << " - ";
    }
    cout << endl;
    
    return 0;
}

/*

To build and run this sample :

[Desktop]$ g++ -std=c++11 Sample.c -o Sample
[Desktop]$ Sample 
Java - C++ - C - 

*/

Sujets connexes