Алгоритм random_shuffle()

Алгоритм random_shuffle()

template class RandomAccessIterator

void

random_shuffle( RandomAccessIterator first,

RandomAccessIterator last );

template class RandomAccessIterator,

class RandomNumberGenerator

void

random_shuffle( RandomAccessIterator first,

RandomAccessIterator last,

RandomNumberGenerator rand);

random_shuffle() переставляет элементы из диапазона [first,last) в случайном порядке. Во втором варианте можно передать объект-функцию или указатель на функцию, генерирующую случайные числа. Ожидается, что генератор rand возвращает значение типа double в интервале [0,1].

#include algorithm

#include vector

#include iostream.h

int main()

{

vector int, allocator vec;

for ( int ix = 0; ix 20; ix++ )

vec.push_back( ix );

random_shuffle( vec.begin(), vec.end() );

// печатает:

// random_shuffle для последовательности 1 .. 20:

// 6 11 9 2 18 12 17 7 0 15 4 8 10 5 1 19 13 3 14 16

cout "random_shuffle для последовательности 1 .. 20: ";

copy( vec.begin(), vec.end(), ostream_iteratorint ( cout,""));

}