vectorに複数のオブジェクトを突っ込んだときにfor文ですべてのオブジェクトを舐めたいときってありますよね。大体、

vector<string> strings;
//ここでstringsに何か突っ込む
for( int i=0; i<num; i++ ){
cout << strings[i];
}

こんな感じのコードになると思うのですが、実は最近のboostはイテレートを自動的に処理してくれるBOOST_FOREACHなるものがあるのです。どうやってるのか分かっちゃいないんですが、とても便利で手放せなくなっている自分がいます(汗)。

vector<string> strings
//ここでstringsに何か突っ込む
BOOST_FOREACH( string str, strings ){
cout << str;
}

“BOOST_FOREACH” ってのがちょっと長いし、タイプするのが大変そうなので、おいらは “#define BOOST_FOREACH foreach” などと定義してしまっています。もうC++が標準で提供しているかのような感じですね。

でも、このBOOST_FOREACHはまだboostのパッケージには含まれていないようなので、別途下記サイトからダウンロードする必要があるみたいです(最初ここでハマりました)。

http://boost-consulting.com/vault/index.php?directory=Algorithms