C++でforeach
abdev 2月 13th, 2007vectorに複数のオブジェクトを突っ込んだときに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
Recent Comments