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

Функция shuffle

Функция shuffle перемешивает элементы диапазона в случайном порядке. В первый параметр мы передаем итератор на начало диапазона, во второй - итератор на конец диапазона, а в третий - генератор случайных чисел. Сами элементы при этом не создаются и не удаляются, меняется только их порядок.

Функция объявлена в заголовочном файле <algorithm>. Для генерации случайных чисел обычно используют std::mt19937 из заголовочного файла <random>.

Синтаксис

shuffle(first, last, gen)

Пример

Давайте перемешаем вектор из чисел 1, 2, 3, 4, 5:

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

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

3 1 5 2 4

Пример

Давайте перемешаем вектор из строк "a", "b", "c", "d", "e":

#include <iostream> #include <vector> #include <string> #include <algorithm> #include <random> using namespace std; int main() { vector<string> vec = {"a", "b", "c", "d", "e"}; random_device rd; mt19937 gen(rd()); shuffle(vec.begin(), vec.end(), gen); for (string el : vec) { cout << el << " "; } cout << endl; return 0; }

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

"c e a d b"

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

  • функция sort,
    которая сортирует элементы диапазона
  • функция reverse,
    которая меняет порядок элементов на обратный
  • функция sample,
    которая выбирает случайные элементы из диапазона
  • функция rotate,
    которая выполняет циклический сдвиг элементов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить