こんにちは。ヤマヤタケシです。
プログラム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.
そんじゃまた。