Программирование >>  Инициализация объектов класса, структура 

1 ... 377 378 379 [ 380 ] 381 382 383 ... 395


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}.



1 ... 377 378 379 [ 380 ] 381 382 383 ... 395

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика