使用std :: copy从随机数分发中复制

时间:2013-07-23 23:36:39

标签: c++ c++11

在C ++ 98中,我可以使用std :: copy使用迭代器适配器从输入流复制到std :: vector。有没有办法从新的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));

“end”迭代器必须有某种方法来限制向量中插入的数量。而且,是的,我知道我需要某种类型的引擎才能使分发工作。

1 个答案:

答案 0 :(得分:8)

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

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

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