Ich suche nach einer generischen, wiederverwendbaren Möglichkeit, a std::vector
in C ++ zu mischen . So mache ich das derzeit, aber ich denke, es ist nicht sehr effizient, da es ein Zwischenarray benötigt und den Elementtyp kennen muss (DeckCard in diesem Beispiel):
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()
, es sind bessere RNG-APIs verfügbar (Boost.Random oder 0x <random>
).