С++. Visual Studio 2010.
У меня есть std::vector
V из N уникальных элементов (heavy). Как эффективно выбрать M случайных, уникальных элементов из него?
например. V содержит 10 элементов: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} и я выбираю три...
- 4, 0, 9
- 0, 7, 8
- Но НЕ это: 0, 5, 5 < --- не уникально!
STL является предпочтительным. Итак, что-то вроде этого?
std::minstd_rand gen; // linear congruential engine??
std::uniform_int<int> unif(0, v.size() - 1);
gen.seed((unsigned int)time(NULL));
// ...?
// Or is there a good solution using std::random_shuffle for heavy objects?