STL c++ std:: shuffle
необходимо перемешать первые 5 элементов вектора.не могу найти синтаксис шафла, нужен 3 аргумент но не понимаю какой
std::shuffle(box.begin(),box.end(), std::mt19937(std::random_device()()));
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Ну так вы все верно сделали. Третьим должен идти генератор случайных чисел.
int main()
{
vector<int> box{ 1,2,3,4,5,6,7,8,9,10};
shuffle(box.begin(),box.begin()+5, mt19937(random_device()()));
for(auto i: box) cout << i << " "; cout << endl;
shuffle(box.begin(),box.begin()+5, mt19937(random_device()()));
for(auto i: box) cout << i << " "; cout << endl;
}
Вот, посмотрите тут - https://ideone.com/PY9ewe - ваш код вполне работает...