// algo/random1.cpp #include #include "algostuff.hpp" using namespace std; class MyRandom { public: ptrdiff_t operator() (ptrdiff_t max) { double tmp; tmp = static_cast(rand()) / static_cast(RAND_MAX); return static_cast(tmp * max); } }; int main() { vector coll; INSERT_ELEMENTS(coll,1,9); PRINT_ELEMENTS(coll,"coll: "); // Случайная перестановка элементов random_shuffle (coll.begin(), coll.end()); PRINT_ELEMENTS(coll,"shuffled: "); // Повторная сортировка sort (coll.begin(), coll.end()); PRINT_ELEMENTS(coll,"sorted: "); /* Случайная перестановка элементов * с пользовательским генератором случайных чисел * - для передачи l-значения необходимо использовать временный объект */ MyRandom rd; random_shuffle (coll.begin(), coll.end(), // Интервал rd); // Генератор случайных чисел PRINT_ELEMENTS(coll,"shuffled: "); }