文法:
#include <algorithm> input_iterator find( input_iterator start, input_iterator end, const T& val );
find()アルゴリズムはstartとendの間でvalと同じ要素を探します。valが見つかった場合、その要素を指すiteratorを返します。見つからなかった場合、endを指すiteratorを返します。
例えば、次のコードではfind()を整数のvectorから3を探すのに使っています:
int num_to_find = 3; vector<int> v1; for( int i = 0; i < 10; i++ ) { v1.push_back(i); } vector<int>::iterator result; result = find( v1.begin(), v1.end(), num_to_find ); if( result == v1.end() ) { cout << "Did not find any element matching " << num_to_find << endl; } else { cout << "Found a matching element: " << *result << endl; }
次の例では、find()は整数の配列に使われています。この例はC++ STL algorithmが配列・ポインタをコンテナ・イテレータを操作するのと同じように扱えることを示しています:
int nums[] = { 3, 1, 4, 1, 5, 9 }; int num_to_find = 5; int start = 0; int end = 2; int* result = find( nums + start, nums + end, num_to_find ); if( result == nums + end ) { cout << "Did not find any number matching " << num_to_find << endl; } else { cout << "Found a matching number: " << *result << endl; }
関連トピック: adjacent_find, find_end, find_first_of, find_if, mismatch, search