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
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
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
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行でデータを代入することができます。