gpt4 book ai didi

c++ - random_shuffle 不允许我传递种子

转载 作者:行者123 更新时间:2023-11-30 02:49:24 27 4
gpt4 key购买 nike

所以我有一个卡片 vector ,我正在尝试使用 random_shuffle 方法对其进行洗牌,但它并没有通过仅将第一项和最后一项传递给它来洗牌。所以我知道有第三个参数是自定义种子,它的东西,random_shuffle 说它没有发现任何函数重载这些参数(或类似的东西 - 我的程序是西类牙语)

基本上,我有两个 vector ,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(),所以它应该工作正常,只是 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

这很奇怪,因为在 cplusplus 上它真的是 1:1。

最佳答案

使 myrandom 成为您的 Game 类的静态成员函数。

关于c++ - random_shuffle 不允许我传递种子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222450/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com