我有一个QSet
,想使用它的随机唯一子集。可以使用std::sample
(在没有太多代码的情况下)吗?
以下代码失败,因为std::back_inserter
正在查找QSet::push_back
,该代码不存在。
std::mt19937 gen((std::random_device()()));
QSet<MyType> allOfMyTypes = {...};
QSet<MyType> selectedMyTypes;
std::sample(allOfMyTypes.begin(), allOfMyTypes.end(), std::back_inserter(selectedMyTypes), 4, gen);