|
Программирование >> Инициализация объектов класса, структура
template< class ForwardIterator, class OutputIterator, class Predicate, class Type > OutputIterator replace copy if( ForwardIterator first, ForwardIterator last, class OutputIterator result, Алгоритм replace copy if() Predicate pred, const Type& new value ); replace copy if() ведет себя так же, как replace if() , только новая последовательность копируется в контейнер, начиная с result. Возвращаемый итератор указывает на элемент, расположенный за последним скопированным. Исходный контейнер остается без изменения. #include <algorithm> #include <vector> #include <iostream.h> исходная последовательность: 0 1 1 2 3 5 8 13 21 34 последовательность после применения replace if < 10 с заменой на 0: 0 0 0 0 0 0 0 13 21 34 последовательность после применения replace if четное с заменой на 0: 0 1 1 0 3 5 0 13 21 0 class EvenValue { public: bool operator()( int value ) { return value % 2 ? false : true; } int main() int new value = 0; int ia[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 }; vector< int, allocator > vec( ia, ia+10 ); ostream iterator< int > ofile( cout, ); cout << исходная последовательность:\n ; copy( ia, ia+10, ofile ); cout << \n; replace if( &ia[0], &ia[10], bind2nd(less<int>(),10), new value ); cout << последовательность после применения replace if < 10 << с заменой на 0:\n ; copy( ia, ia+10, ofile ); cout << \n; replace if( vec.begin(), vec.end(), EvenValue(), new value ); cout << последовательность после применения replace if четное << с заменой на 0:\n ; copy( vec.begin(), vec.end(), ofile ); cout << \n; template< class BidirectionalIterator > void reverse( BidirectionalIterator first, Алгоритм reverse() BidirectionalIterator last ); template< class BidirectionalIterator, class OutputIterator > OutputIterator reverse copy( BidirectionalIterator first, Алгоритм reverse copy() BidirectionalIterator last, OutputIterator result ); reverse copy() ведет себя так же, как reverse() , только новая последовательность копируется в контейнер, начиная с result. Возвращаемый итератор указывает на элемент, расположенный за последним скопированным. Исходный контейнер остается без изменения. reverse() меняет порядок элементов контейнера в диапазоне [first,last) на противоположный. Например, если есть последовательность {0,1,1,2,3}, то после обращения получится {3,2,1,1,0}.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |