如何在向量中保存不同的分布
How to save different distributions in a vector
我正在使用 Boost C++ 生成具有不同给定范围的随机整数样本。每个范围对应一个组。例如,对于范围(低、高),我可以使用:boost::mt19937 engine (seed);
boost::bind(boost::random::uniform_int_distribution<>(low, high), engine);
我有 22 个这样的组(每个组都有不同的给定范围),我需要从每个uniform_int_distribution(对应于每个组)创建大量(总共 2000 万个)样本。
为了提高效率,我想将不同的uniform_int_distributions保存在数组或向量中:
vector <boost::???> distributions_groups[22];
我该怎么做?
您可以通过
包装到boost::function
来存储它们:
std::vector<boost::function<int (void)>> distributions_groups;
distributions_groups.push_back
(
boost::bind
(
boost::random::uniform_int_distribution<>(low, high)
, engine
)
);
请注意,所有这些东西都可以在标准库中找到(假设支持 C++11 标准)。
我想你想在vector
中保存那些随机数。
我会改用 lambda。
boost::mt19937 engine( seed ) ;
boost::random::uniform_int_distribution<int> distribution(
min,
max);
std::vector < std::vector<int> >
distributions_groups( 22 , std::vector<int>(each_vec_size) );
auto gen = [distribution, &engine]() { return distribution(engine); } ;
// Example :
for (auto i : distributions_groups)
{
std::generate( begin(i) , end(i) , gen );
std::cout << 'n';
for (auto j : i)
{
std::cout << j << " ";
}
}
在这里演示
相关文章:
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 在C++中将类(带有Vector成员)保存为二进制文件
- C++.我想将更改后的特定字符行保存在字符串中
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 将RGB图像保存为PPM格式
- 哈希文件递归并保存到矢量Cryptopp中
- 如何将二进制格式的 C++ 对象的 std::vector 保存到磁盘?
- 无法通过头文件保存变量的值
- 我们可以将数据永久保存为数据结构吗?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 保存/加载大量短数组到二进制文件
- Gstreamer:每 5 秒使用多文件墨水保存图像/jpeg
- 如何访问由共享指针保存的类方法?
- 为什么签名字符可以保存大于 127 的值?
- 如何在向量中保存不同的分布