【发布时间】:2020-01-19 19:07:59
【问题描述】:
我有一张元素地图:
std::map<char,int> values;
values['a']=10;
values['b']=30;
values['c']=50;
values['d']=70;
values['e']=90;
values['f']=100;
values['g']=120;
所以我需要从values 中选择 N 个元素作为配对映射(输出格式和输入格式)。
我尝试了 stackoverflow 的其他不同解决方案,但它们大多适用于矢量,不适用于任何类型的 C++ 11 容器,或者对我来说看起来太复杂了。
我需要一些比 random_shuffle 更有效的方法,它实际上会改变 C++ 容器。
如果这个函数适用于任何类型的 C++ 容器,那就太好了。
【问题讨论】:
-
std::sample呢? -
std::sample 是 C++ 17 特性
-
@Evg
std::sample也不适用于地图。我检查过它甚至没有编译。
标签: c++ algorithm dictionary c++11 random