如何使用 std::shuffle 以随机顺序对具有唯一指针的向量进行洗牌
How can I shuffle a vector with unique pointers in a random sequence with std::shuffle?
我正忙着编写纸牌游戏。对于这个纸牌游戏,我想洗牌。甲板是独特指针的向量,如下所示:
std::vector<std::unique_ptr<Cards>> _deck;
我试图从中获取带有 shuffle 函数的随机序列,但出现以下错误:"没有函数模板"std::shuffle"的实例与参数向量匹配"。查看下面的代码块以获取参数。
std::shuffle(_buildings_deck.begin(), _buildings_deck.back(), std::default_random_engine{});
据我所知,我使用的参数是正确的,我仍然需要选择一个随机引擎,但这应该不是问题。所以我想知道是否可以使用 shuffle 随机排序唯一指针的向量,如果是的话,如何排序?
std::shuffle() 期望随机访问迭代器,就像 std::vector 一样。你必须将 std::list 替换为 std::vector。
相关文章:
- 何时在引用或唯一指针上使用移动语义
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- 如何更改唯一指针向量的可见性
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- C++尝试深度复制唯一指针时出现内存访问冲突
- 使用 RTTI 克隆唯一指针的向量
- 为什么我无法创建唯一指针
- 如何将唯一指针的 std::vector 转换为原始指针的 std::span?
- 将唯一指针的指针传递给采用双指针的函数
- 在什么情况下,需要共享智能指针而无法使用唯一指针?
- C++唯一指针的向量
- 对带有唯一指针的 std::thread 使用类成员函数时出现编译错误
- 指向基类的唯一指针
- 添加要映射的对象的唯一指针
- 智能指针(唯一指针)和引用
- 唯一指针是否在堆或堆栈上分配内存?
- 尝试设置唯一指针布尔数组的值时BAD_ACCESS错误
- 使用唯一指针调用函数会使我的程序崩溃
- 智能指针(唯一指针)总是比普通指针更可取