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

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


#include <algorithm> #include <vector> #include <iostream.h>

/* печатается:

исходная последовательность:

0 1 1 2 3 5 8 13 21 34

последовательность после применения remove if < 10:

13 21 34

последовательность после применения remove copy if четное:

1 1 3 5 13 21

class EvenValue { public:

bool operator()( int value ) { return value % 2 ? false : true; }

int main() {

int ia[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 };

vector< int, allocator >::iterator iter; vector< int, allocator > vec( ia, ia+10 );

ostream iterator< int > ofile( cout, );

cout << исходная последовательность:\n ;

copy( vec.begin(), vec.end(), ofile ); cout << \n;

iter = remove if( vec.begin(), vec.end(),

bind2nd(less<int>(),10) ); vec.erase( iter, vec.end() );

cout << последовательность после применения remove if < 10:\n ; copy( vec.begin(), vec.end(), ofile ); cout << \n;

vector< int, allocator > vec res( 10 );

iter = remove copy if( ia, ia+10, vec res.begin(), EvenValue()

cout << последовательность после применения remove copy if четное:\n ;

copy( vec res.begin(), iter, ofile ); cout << \n;

template< class ForwardIterator, class Type > void

replace( ForwardIterator first, ForwardIterator last,

Алгоритм replace()

const Type& old value, const Type& nevalue );



template< class InputIterator, class InputIterator,

1 Флгл

class Type > OutputIterator replace copy( InputIterator first, InputIterator last, class OutputIterator result,

Алгоритм replace copy()

const Type& old value, const Type& nevalue );

replace copy() ведет себя так же, как replace() , только новая последовательность копируется в контейнер, начиная с result. Возвращаемый итератор указывает на элемент, расположенный за последним скопированным. Исходный контейнер остается без изменения.

replace() заменяет в диапазоне [first,last) все элементы со значением old value на new value.



#include <algorithm> #include <vector> #include <iostream.h>

/* печатается:

исходная последовательность:

Christopher Robin Mr. Winnie the Pooh Piglet Tigger Eeyore последовательность после применения replace(): Christopher Robin Pooh Piglet Tigger Eeyore

int main()

nie the Pooh );

string oldval( Mr. Winn string newval( Pooh );

ostream iterator< string > ofile( cout, ); string sa[] = {

Christopher Robin , Mr. Winnie the Pooh , Piglet , Tigger , Eeyore

vector< string, allocator > vec( sa, sa+5 ); cout << исходная последовательность:\n ; copy( vec.begin(), vec.end(), ofile ); cout << \n;

replace( vec.begin(), vec.end(), oldval, newval );

cout << последовательность после применения replace():\n ; copy( vec.begin(), vec.end(), ofile ); cout << \n;

vector< string, allocator > vec2; replace copy( vec.begin(), vec.end(),

inserter( vec2, vec2.begin() ),

newval, oldval );

cout << последовательность после применения replace copy():\n ; copy( vec.begin(), vec.end(), ofile ); cout << \n;

template< class ForwardIterator, class Predicate, class Type > void

replace if( ForwardIterator first, ForwardIterator last,

Алгоритм replace if()

Predicate pred, const Type& nevalue );

replace if() заменяет значения всех элементов в диапазоне [first,last) , для которых предикат pred равен true, на new value.



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

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