c++のstd::all_ofを使ってみた

こんにちは。ヤマヤタケシです。

来年は積極的にSTLのアルゴリズムを使っていこう!をテーマに学習中です。
さて、今回は、C++のall_ofを使ってみました。
abc順だとany_ofよりもall_ofが先ですね!

std::all_ofは、コンテナの要素の”すべて”が条件を満たすか?を調べてくれます。

//全部同じか?all_of
#include 
#include 
#include 

int main()
{
  std::array same = { 2,2,2 };

  for( int n = 0 ; n < 3 ; ++n ) {
    std::cout << "中身は " << n << " ?" << std::endl;
    if( std::all_of( same.begin(), same.end(), [n](const int &v) { return v == n; } ) ) {
      std::cout << "同じ" << std::endl;
    }
    else {
      std::cout << "違う" << std::endl;
    }
  }
  return 0;
}
all_of_test: all_of_test.cpp
	g++ all_of_test.cpp -std=c++11 -o all_of_test
	./all_of_test
make -k 
g++ all_of_test.cpp -std=c++11 -o all_of_test
./all_of_test
中身は 0 ?
違う
中身は 1 ?
違う
中身は 2 ?
同じ

なんだかベタにforで書いた方が良いような気もします。

そんじゃまた。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です