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

こんにちは。ヤマヤタケシです。
プログラムstd::findを使ってみました。
これは、値をコンテナから探してくれます。
見つかったらその場所のイテレーターが返ってきます。
見つからなかったら、範囲の最後が返ってきます。

//さがすぜ find
#include 
#include 
#include 

void check( const std::array &list, int v )
{
  std::cout << "find " << v << " ";
  auto ite = std::find( list.begin(), list.end(), v );
  if( ite != list.end() )
    {
      //std::distanceで配列の位置を取得できます。
      std::cout << "exist at " << std::distance( list.begin(), ite ) << std::endl;
    }
  else
    {
      std::cout << "not found." << std::endl;
    }
}

int main()
{
  std::array list = { 4, 2, 3, 0, 1};
  for( auto &v : list )
    {
      std::cout << v << ",";
    }
  std::cout << std::endl;
  check( list, 2 );
  check( list, 4 );
  check( list, 6 );
  return 0;
}
find_test: find_test.cpp
	g++ find_test.cpp -std=c++11 -o find_test
	./find_test
make -k 
g++ find_test.cpp -std=c++11 -o find_test
./find_test
4,2,3,0,1,
find 2 exist at 1
find 4 exist at 0
find 6 not found.

そんじゃまた。

コメントを残す

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