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

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


#include <algorithm>

#include <list>

#include <string> #include <iostream.h>

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

Исходная последовательность строк:

Signature of all things I am here to

read seaspa and seawrack that rusty boot

Последовательность строк после пренения reverse (): boot rusty that seawrack and seaspawn read to here am I things all of Signature

class print elements {

public:

void ope

cout <<

( line cnt++%8 ? : \n\t );

void operator()( string elem ) { cout << elem

static void reset line cnt() { line cnt = 1; }

private:

static int line cnt;

int print elements:: line cnt = 1; int main()

string sa[] = { Signature , of , all , things ,

I , am , here , to , read ,

seaspawn , and , seawrack , that , rusty , boot

list< string, allocator > slist( sa, sa+15 );

cout << Исходная последовательность строк:\n\t ; for each( slist.begin(), slist.end(), print elements() ); cout << \n\n ;

reverse( slist.begin(), slist.end() ); print elements::reset line cnt();

cout << Последовательность строк после применения reverse():\n\t ;

for each( slist.begin(), slist.end(), print elements() ); cout <<

\n ;

list< string, allocator > slist copy( slist.size() ); reverse copy( slist.begin(), slist.end(), slist copy.begin() );



template< class ForwardIterator > void

rotate( ForwardIterator first,

Алгоритм rotate()

ForwardIterator middle, ForwardIterator last );

rotate() перемещает элементы из диапазона [first,last) в конец контейнера. Элемент, на который указывает miiddle, становится первым. Например, для слова hissboo вращение вокруг буквы b превращает слово в boohiss .

template< class ForwardIterator, class OutputIterator > OutputIterator

rotate copy( ForwardIterator first, ForwardIterator middle,

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

ForwardIterator last, OutputIterator result );

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



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

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

исходная последовательность: 1 3 5 7 9 0 2 4 6 8 10

вращение вокруг среднего элемента(0) :: 0 2 4 6 8 10 1 3 5 7 9

вращение вокруг предпоследнего элемента(8) ::

8 10 1 3 5 7 9 0 2 4 6

rotate copy вокруг среднего элемента :: 7 9 0 2 4 6 8 10 1 3 5

int main() {

int ia[] = { 1, 3, 5, 7, 9, 0, 2, 4, 6, 8, 10 }; vector< int, allocator > vec( ia, ia+11 );

ostream iterator< int > ofile( cout, );

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

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

rotate( &ia[0], &ia[5], &ia[11] );

cout << вращение вокруг среднего элемента(0) ::\n ; copy( ia, ia+11, ofile ); cout << \n;

rotate( vec.begin(), vec.end()-2, vec.end() );

cout << вращение вокруг предпоследнего элемента(8) ::\n ; copy( vec.begin(), vec.end(), ofile ); cout << \n;

vector< int, allocator > vec res( vec.size() );

rotate copy( vec.begin(), vec.begin()+vec.size()/2, vec.end(), vec res.begin() );

cout << rotate copy вокруг среднего элемента ::\n ; copy( vec res.begin(), vec res.end(), ofile ); cout << \n;

Алгоритм search()



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

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