|
Программирование >> Инициализация объектов класса, структура
template< class InputIterator, class T > InputIterator find( InputIterator first, Алгоритм find() InputIterator last, const T &value ); Элементы из диапазона, ограниченного парой итераторов [first,last), сравниваются со значением value с помощью оператора равенства, определенного для типа элементов контейнера. Как только соответствие найдено, поиск прекращается. find() возвращает итератор типа InputIterator, указывающий на найденный #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 << поиск первого вхож;дения ск первого << \t elem << \t ( found it ? найдено!\n : не найдено!\n ); string beethoven[] = { Sonata31 , S Archduke , Sphony7 Sonata31 , Sonata32 , artet14 , artet15 , 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 ); элемент; в противном случае возвращается last. template< class InputIterator, class Predicate > InputIterator find if( InputIterator first, Алгоритм find if() InputIterator last, Predicate pred ); К каждому элементу из диапазона [first,last) последовательно применяется предикат pred. Если он возвращает true, поиск прекращается. find if () возвращает итератор типа InputIterator, указывающий на найденный элемент; в противном случае возвращается last. #include <algorithm> #include <list> #include <set> #include <string> #include <iostream.h> альтернатива оператору равенства возвращает true, строка содержится в объекте-члене FriendSet class OurFriends { друзья public: bool operator()( const string& str ) { return ( friendset.count( str )); static void FriendSet( const string *fs, int count ) { copy( fs, fs+count, inserter( friendset, friendset.end() )); private: static set< string, less<string>, allocator > friendset; set< string, less<string>, allocator > OurFriends::friendset; int main() { string Pooh friends[] = { Пятачок , Тигра , Иа-Иа }; string more friends[] = { Квазодо , Чип , Пятачок }; list<string,allocator> lf( more friends, more friends+3 ); заполнить список друзей Пуха OurFriends::FriendSet( Pooh friends, 3 ); list<string,allocator>::iterator our mutual friend; our mutual friend = find if( lf.begin(), lf.end(), OurFriends()); печатается: Представьте-ка, наш друг Пятачок - также друг Пуха. if ( our mutual friend != lf.end() ) cout << Представьте-ка, наш друг *our mutual friend также друг Пуха.\n ; return 0;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |