我有一个包含n元素的vector。我需要从vector中随机选择m元素的子集而不重复。这样做最有效的方法是什么?我需要在我的代码中执行数千次。我想到的解决方案是使用rand()在0和n之间生成一个随机数k。然后选择vector中的第k个元素并将其插入到std::set中。继续这样做,直到集合的大小等于m。我现在确信该集合包含从n元素集合中随机选择的m个唯一元素。其他可能的解决方案是什么?谢谢。 最佳答案 你想要一个Fisher-Yatesshuffle(M次迭代后停止):templateBidiIterrandom_unique(B