我正忙着编写纸牌游戏。对于这个纸牌游戏,我想洗牌。牌组是一个由唯一指针组成的 vector ,看起来像这样:
std::vector<std::unique_ptr<Cards>> _deck;
我尝试使用 shuffle 函数从中获取随机序列,但出现以下错误:“函数模板“std::shuffle”的实例与参数 vector “不匹配”。查看下面的代码块以获取参数.
std::shuffle(_buildings_deck.begin(), _buildings_deck.back(), std::default_random_engine{});
据我所知,我使用的参数是正确的,我仍然需要选择一个随机引擎,但这应该不是问题。所以我想知道是否可以使用 shuffle 随机排序唯一指针的 vector ,如果可以的话如何?
最佳答案
std::shuffle() 期望像 std::vector 那样的随机访问迭代器。您必须用 std::vector 替换 std::list。
关于c++ - 如何使用 std::shuffle 随机排列具有唯一指针的 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41783531/