РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
117 of 815 menu

Функция random_shuffle

Функция random_shuffle перемешивает элементы контейнера в случайном порядке. Она принимает два итератора: первый указывает на начало диапазона, а второй - на конец диапазона. Элементы переставляются случайным образом. Функция объявлена в заголовочном файле algorithm.

Синтаксис

random_shuffle(first, last) random_shuffle(first, last, gen)

Пример

Давайте перемешаем элементы вектора {1, 2, 3, 4, 5}:

#include <iostream> #include <vector> #include <algorithm> #include <cstdlib> #include <ctime> using namespace std; int main() { srand(time(0)); vector<int> vec = {1, 2, 3, 4, 5}; random_shuffle(vec.begin(), vec.end()); for (int el : vec) { cout << el << " "; } cout << endl; return 0; }

Результат выполнения кода:

3 1 5 2 4

Пример

Давайте перемешаем строку "abcde":

#include <iostream> #include <string> #include <algorithm> #include <cstdlib> #include <ctime> using namespace std; int main() { srand(time(0)); string str = "abcde"; random_shuffle(str.begin(), str.end()); cout << str << endl; return 0; }

Результат выполнения кода:

"caebd"

Пример

Давайте перемешаем элементы вектора {1, 2, 3, 4, 5}, используя генератор случайных чисел mt19937:

#include <iostream> #include <vector> #include <algorithm> #include <random> using namespace std; int main() { mt19937 gen(42); vector<int> vec = {1, 2, 3, 4, 5}; random_shuffle(vec.begin(), vec.end(), gen); for (int el : vec) { cout << el << " "; } cout << endl; return 0; }

Результат выполнения кода:

2 5 1 4 3

Смотрите также

  • функция rand,
    которая генерирует случайное число
  • функция srand,
    которая задаёт начальное значение генератора
  • класс mt19937,
    который является генератором случайных чисел
  • класс random_device,
    который генерирует недетерминированные случайные числа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить