使用std::copy从随机数分布中进行复制

Use std::copy to copy from random number distribution

本文关键字:分布 复制 随机数 std copy 使用      更新时间:2023-10-16

在C++98中,我可以使用std::copy使用迭代器适配器将输入流复制到std::向量。从新的C++11随机数库中有没有类似的方法?

我想做的是:

std::uniform_int_distribution<int> dist(0, 1024);
std::vector<int> col;
std::copy(std::adapter_type(dist), std::adapter_type(dist, 128), std::back_inserter(col));

"结束"迭代器必须有某种方法来限制在向量中插入的数字数量。是的,我知道我需要某种类型的引擎来使分发工作。

您想要generate_n(实际上并不是新的):

std::generate_n(std::back_inserter(col), 128, std::bind(dist, gen));

(这里gen是一个合适的随机数引擎。)