こんにちは。ヤマヤタケシです。
stlのalgorithmを使ってみる第3回です。
今回は、none_of です。
none_of は全部”違って”いたらtrueを返す関数です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
//すべて違えばtrue,none_of #include <iostream> #include <algorithm> #include <array> void none_of_zero( const std::array<int, 3> &list ) { if( std::none_of( list.begin(), list.end(), []( const int &v){ return v == 0; } ) ) { std::cout << "not all 0\n"; } else { std::cout << "all 0\n"; } } int main() { std::array<int, 3> list = { 0, 0, 0 }; //全部0 none_of_zero( list ); //直接配列の初期化をつっこめた! none_of_zero( { 1, 2, 3 } ); return 0; } |
関数の引数に配列の初期化形式を書くのは初めてです。
ダメ元で書いたら通ってちょっと驚きました。
1 2 3 |
none_of_test: none_of_test.cpp g++ none_of_test.cpp -std=c++11 -o none_of_test ./none_of_test |
1 2 3 4 5 |
make -k g++ none_of_test.cpp -std=c++11 -o none_of_test ./none_of_test all 0 not all 0 |
そんじゃまた。