Je recherche un moyen générique et réutilisable de mélanger un std::vector
en C ++. C'est comme ça que je le fais actuellement, mais je pense que ce n'est pas très efficace car il a besoin d'un tableau intermédiaire et il a besoin de connaître le type d'élément (DeckCard dans cet exemple):
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);
}
rand()
, il existe de meilleures API RNG disponibles (Boost.Random ou 0x <random>
).