Я ищу универсальный многоразовый способ перетасовать std::vector
в С++. Вот как я это делаю сейчас, но я думаю, что это не очень эффективно, потому что ему нужен промежуточный массив, и ему нужно знать тип элемента (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);
}