【发布时间】:2012-03-27 21:41:02
【问题描述】:
C++。视觉工作室 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?
【问题讨论】:
-
您对“独特”的定义通常称为“(绘图)无需替换”