|
Программирование >> Инициализация объектов класса, структура
template< class ForwardIteratorl, class ForwardIterator2 > ForwardIterator search( ForwardIteratorl firstl, ForwardIteratorl lastl, ForwardIterator2 first2, ForwardIterator2 last2 ); template< class ForwardIteratorl, class ForwardIterator2, class BinaryPredicate > ForwardIterator search( ForwardIteratorl firstl, ForwardIteratorl lastl, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred ); Если даны два диапазона, то search() возвращает итератор, указывающий на первую позицию в диапазоне [first1,last1), начиная с которой второй диапазон входит как подпоследовательность. Если подпоследовательность не найдена, возвращается lastl. Например, в слове Mississippi подпоследовательность iss встречается дважды:, и search() возвращает итератор, указывающий на начало первого вхождения. В первом варианте для сравнения элементов используется оператор равенства, во втором - #include <algorithm> #include <vector> #include <iostream.h> /* печатается: Ожидаем найти подстроку ate: a t e Ожидаем найти подстроку vat: v a t int main() ostream iterator< char > ofile( cout, ); char str[ 25 ] = a fine and private place ; char substr[] = ate ; char *found str = search(str,str+25,substr,substr+3); cout << Ожидаем найти подстроку ate: ; copy( found str, found str+3, ofile ); cout << \n; iter vector< char, allocator > vec( str, str+24 ) vector< char, allocator > subvec(3); subvec[0]=v; subvec[1]=a; subvec[2]=t; vector< char, allocator >::iterator iter; = search( vec.begin(), vec.end(), subvec.begin(), subvec.end(), eal to< char >() ); cout << Ожидаем найти подстроку vat: ; copy( iter, iter+3, ofile ); cout << \n; указанная программистом операция сравнения. template< class ForwardIterator, class Size, class Type > ForwardIterator search n( ForwardIterator first, ForwardIterator last, Size count, const Type &value ); template< class ForwardIterator, class Size, class Type, class BinaryPredicate > ForwardIterator search n( ForwardIterator first, ForwardIterator last, Алгоритм search n() Size count, const Type &value, BinaryPredicate pred ); search n() ищет в последовательности [first,last) подпоследовательность, состоящую из count повторений значения value. Если она не найдена, возвращается last. Например, для поиска подстроки ss в строке Mississippi следует задать value равным s, а count равн1м 2. Если же нужно найти две расположенные подряд подстроки ssi, то value задается равным ssi , а count снова 2. search n() возвращает итератор на первый элемент со значением value. В первом варианте для сравнения элементов используется оператор равенства, во втором - указанная программистом операция сравнения. #include <algorithm> #include <vector> #include <iostream.h> /* печатается: Ожидаем найти два вхождения o: o o Ожидаем найти подстроку mou: m o u int main() ostream iterator< char > ofile( cout, ); const char blank = ; const char oh = o; char str[ 26 ] = oh my a mouse ate a moose ; char *found str = search n( str, str+25, 2, oh ); cout << Ожидаем найти два вхождения o: ; copy( found str, found str+2, ofile ); cout << \n; vector< char, allocator > vec( str, str+25 ); / / найти первую последовательность из трех стволов, ни один из котор не равен пробелу: mou of mouse vector< char, allocator >::iterator iter; iter = search n( vec.begin(), vec.end(), blank, not eal to< char >() ); cout << Ожидаем найти подстроку mou: ; copy( iter, iter+3, ofile ); cout << \n; template< class InputIteratorl, class InputIterator2, class OutputIterator > OutputIterator set difference( InputIteratorl firstl, InputIteratorl lastl, InputIterator2 first2, InputIterator2 last2, OutputIterator result ); terator2, template< class InputIteratorl, class InputIte class OutputIterator, class Compare OutputIterator set difference( InputIteratorl firstl, InputIteratorl lastl, InputIterator2 first2, InputIterator2 last2, Алгоритм set difference() OutputIterator result, Compare comp ); set difference() строит отсортированную последовательность из элементов, имеющихся в первой последовательности [firstl,lastl) , но отсутствующих во второй - [first2,last2) . Например, разность последовательностей {0,1,2,3} и
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |