最佳答案
我正在寻找一个通用的,可重用的方式来洗牌的 std::vector
在 C + + 。这是我目前的做法,但我认为它不是很有效,因为它需要一个中间数组,它需要知道项目类型(DeckCard 在这个例子中) :
srand(time(NULL));
cards_.clear();
while (temp.size() > 0) {
int idx = rand() % temp.size();
DeckCard* card = temp[idx];
cards_.push_back(card);
temp.erase(temp.begin() + idx);
}