bambooflow Note

foreach

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン

Boost.foreach



foreachで配列データの表示

#include <iostream>
#include <boost/foreach.hpp>
 
using namespace std;
 
int main( int argc, char* argv[] )
{
    int a[] = { 10, 20, 30, 40, 50 };
 
    BOOST_FOREACH( int n, a ) { 
        cout << n  << endl;
    }
    return 0;
}
 

  • 実行結果
10
20
30
40
50


foreachで各要素に値を加算


配列aの各要素に+1するプログラム
参照型を使用することでできます。

#include <iostream>
#include <boost/foreach.hpp>
 
using namespace std;
 
int main( int argc, char* argv[] )
{
    int a[] = { 10, 20, 30, 40, 50 };
 
    BOOST_FOREACH( int &n, a ) { 
        n = n+1;
    }   
 
    BOOST_FOREACH( int n, a ) { 
        cout << n  << endl;
    }   
    return 0;
}
 

  • 実行結果
11
21
31
41
51


foreachで配列データを逆順に表示


BOOST_REVERSE_FOREACHを使います。

#include <iostream>
#include <boost/foreach.hpp>
 
using namespace std;
 
int main( int argc, char* argv[] )
{
    int a[] = { 10, 20, 30, 40, 50 };
 
    BOOST_REVERSE_FOREACH( int n, a ) { 
        cout << n  << endl;
    }
    return 0;
}
 

  • 実行結果
50
40
30
20
10


vectorをforeachで処理する


#include <iostream>
#include <vector>
#include <boost/foreach.hpp>
 
using namespace std;
 
int main( int argc, char* argv[] )
{
    vector<int> a;
    a.push_back( 10 );
    a.push_back( 20 );
    a.push_back( 30 );
    a.push_back( 40 );
    a.push_back( 50 );
 
    BOOST_FOREACH( int &n, a ) { 
        n = n + 1;
    }   
 
    BOOST_FOREACH( int n, a ) { 
        cout << n  << endl;
    }   
    return 0;
}
 

Boost.Assignmentを使用すると、push_backを使用せずに1行でデータを代入することができます。

タグ:

Boost foreach
記事メニュー
ウィキ募集バナー