如何使用std :: shuffle以随机顺序混合带有唯一指针的向量?

时间:2017-01-21 19:26:32

标签: c++ algorithm c++11 random shuffle

我正忙着编写纸牌游戏。对于这个纸牌游戏,我想要洗牌。套牌是一个独特的指针矢量,看起来像这样:

std::shuffle(_buildings_deck.begin(), _buildings_deck.back(), std::default_random_engine{});

我尝试使用shuffle函数得到一个随机序列但是我得到了以下错误:“没有函数模板实例”std :: shuffle“匹配参数向量”。“。查看下面的代码块以获取参数

indices <- which(upper.tri(mat, diag=FALSE), arr.ind=TRUE)
mat[indices[order(indices[,1]),]]
# [1]  5  9 13 10 14 15

据我所知,我使用的参数是正确的,我仍然需要选择随机引擎,但这不应该是问题。所以我想知道是否有可能使用shuffle随机排序一个独特指针的向量,如果是这样的话?

1 个答案:

答案 0 :(得分:5)

std :: shuffle()期望随机访问迭代器为std :: vector。你必须用std :: vector替换std :: list。