, поэтому у меня есть вектор карт, и я пытаюсь перетасовать его с помощью метода random_shuffle, но он не перетасовывает их, передавая только первый и последний элемент. Итак, я знаю, что есть третий параметр, который является обычным семенем, то, что он, random_shuffle, говорит, что он не находит никаких функций, перегруженных этими параметрами (или что-то в этом роде - моя программа на испанском языке)random_shuffle, не позволяющий мне передать ему семя
В принципе, у меня есть два векторы, enemyCards и playerCards, оба имеют размер 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() в коде, поэтому это должно работать нормально, это просто случайный случай, который этого не делает.
Это то, что говорит, что компилятор при использовании метода 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.
Вы получаете какую-либо ошибку компиляции? Как ошибка типа? – towr
[См.] (Http://en.cppreference.com/w/cpp/algorithm/random_shuffle) критерии для объекта функции для 'std :: random_shuffle' – P0W
Я просто устанавливаю английскую версию VS2012 в реальном времени, затем Я опубликую ошибки компилятора – zaakun