поэтому у меня есть вектор карт, и я пытаюсь перетасовать его с помощью метода random_shuffle, но он не перетасовывает их, передавая только первый и последний элемент. Итак, я знаю, что есть третий параметр, который является пользовательским начальным числом, дело в том, что random_shuffle говорит, что не находит никаких функций, перегруженных этими параметрами (или что-то в этом роде - моя программа на испанском языке)
По сути, у меня есть два вектора, вражеские карты и игроки, оба имеют размер 5.
random_shuffle(enemyCards.begin(), enemyCards.end());
random_shuffle(playerCards.begin(), playerCards.end());
Это компилируется, но не работает, а
int myrandom (int i) { return std::rand()%i;}
random_shuffle(enemyCards.begin(), enemyCards.end(), myrandom);
random_shuffle(playerCards.begin(), playerCards.end(), myrandom);
даже не компилируется.
Я делаю что-то неправильно?
У меня есть srand() в начале и другие рабочие rand() в коде, так что это должно работать нормально, просто random_shuffle не работает.
Вот что говорит компилятор при использовании метода myrandom:
Error 11 error C3867: 'comgrid::Game::myrandom': function call missing argument list; use '&comgrid::Game::myrandom' to create a pointer to member
Error 12 error C2780: 'void _STL::random_shuffle(_RandomAccessIter,_RandomAccessIter)' : expects 2 arguments - 3 provided
Что странно, потому что это действительно 1:1, как в примере с cplusplus.
std::random_shuffle
- person P0W   schedule 20.01.2014