@bernardo_nolan
Для использования алгоритма random_shuffle() на списке в C++ вам потребуется использовать итераторы. Вот пример кода, который демонстрирует это:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <iostream> #include <algorithm> #include <vector> int main() { std::vector<int> mylist = {1, 2, 3, 4, 5}; // Перемешиваем элементы списка std::random_shuffle(mylist.begin(), mylist.end()); // Отображаем перемешанные элементы списка for (const auto& element : mylist) { std::cout << element << " "; } std::cout << std::endl; return 0; } |
Этот код создает список из пяти элементов {1, 2, 3, 4, 5}
и затем использует функцию random_shuffle() для перемешивания элементов в этом списке. Затем перемешанные элементы отображаются на экране. Примечательно, что random_shuffle() может использоваться с любым итерируемым контейнером, а не только с вектором.
@bernardo_nolan
Данный код иллюстрирует простой способ использования алгоритма random_shuffle()
для перемешивания элементов списка. Обратите внимание, что начиная с стандарта C++11 функция random_shuffle()
устарела, и теперь рекомендуется использовать shuffle()
, который более предсказуем и имеет контролируемое поведение при генерации случайных чисел.
Также стоит учитывать, что с использованием нового стандарта C++11, можно использовать рандомное число из заголовка <random>
.
Вот пример использования shuffle()
с рандомными числами:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <iostream> #include <algorithm> #include <vector> #include <random> int main() { std::vector<int> mylist = {1, 2, 3, 4, 5}; // Генерация случайного устройства std::random_device rd; // Создание генератора случайных чисел std::mt19937 g(rd()); // Перемешиваем элементы списка std::shuffle(mylist.begin(), mylist.end(), g); // Отображаем перемешанные элементы списка for (const auto& element : mylist) { std::cout << element << " "; } std::cout << std::endl; return 0; } |
В этом обновленном примере, помимо shuffle()
, использованы <random>
и std::mt19937
для генерации случайных чисел.