Алгоритм find()
template< class InputIterator, class T > InputIterator find( InputIterator first, |
InputIterator last, const T &value );
Элементы из диапазона, ограниченного парой итераторов [first,last), сравниваются со значением value с помощью оператора равенства, определенного для типа элементов контейнера. Как только соответствие найдено, поиск прекращается. find()
возвращает итератор типа InputIterator, указывающий на найденный элемент; в противном случае возвращается last.
#include <algorithm> #include <iostream.h> #include <list> #include <string>
int main() { int array[ 17 ] = { 7,3,3,7,6,5,8,7,2,1,3,8,7,3,8,4,3 };
int elem = array[ 9 ]; int *found_it;
found_it = find( &array[0], &array[17], elem ); // печатается: поиск первого вхождения 1 найдено! cout << "поиск первого вхождения " << elem << "\t" << ( found_it ? "найдено!\n" : "не найдено!\n" ); string beethoven[] = { "Sonata31", "Sonata32", "Quartet14", "Quartet15", "Archduke", "Symphony7" }; string s_elem( beethoven[ 1 ] ); list< string, allocator > slist( beethoven, beethoven+6 ); list< string, allocator >::iterator iter; iter = find( slist.begin(), slist.end(), s_elem ); // печатается: поиск первого вхождения Sonata32 найдено! cout << "поиск первого вхождения " << s_elem << "\t" << ( found_it ? "найдено!\n" : "не найдено!\n" ); |
}