lambda式をもっと刺激的に使う
面白い話を小耳に挟んだのでメモメモ
#include <iostream> #include <vector> #include <functional> using namespace std; int main(){ vector<vector<int>> array; vector<int> tempA = {1,2,3,4,5,6,7,8,9,10}; array.push_back( tempA ); vector<int> tempB = {11,12,13,14,15,16,17,18,19,20}; array.push_back( tempB ); [&]{ for(size_t i=0; i < array.size(); ++i){ for(size_t j=0; j < array[i].size(); ++j){ if( array[i][j] == 17 )return; cout << array[i][j] << endl; } } }(); return 0; }
出力結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
これがC++0xにおける多重ループからの脱出方法だっ!(キリッ
終了フラグ作ってbreak;break;するくらいなら俺はreturnするぞジョジョォー!!
って話。
もちろん遅(ry