在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”迭代器必须有某种方法来限制向量中插入的数量。而且,是的,我知道我需要某种类型的引擎才能使分发工作。
答案 0 :(得分:8)
你想要generate_n
(实际上并不是新的):
std::generate_n(std::back_inserter(col), 128, std::bind(dist, gen));
(这里gen
是一个合适的随机数引擎。)