c++ - 使用 std::copy 从随机数分布中复制

标签 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));

“结束”迭代器必须有一些方法来限制 vector 中插入的数字数量。而且,是的,我确实知道我需要某种类型的引擎来进行分发。

最佳答案

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

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

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

关于c++ - 使用 std::copy 从随机数分布中复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17822782/

相关文章:

c++ - Qmake 创建 .pc 文件

c++ - C++ 中的 Uint32 和 unsigned int 有什么区别?

c++ - vector 迭代循环抛出错误?

c++ - 使用字符串类型的键存储散列值的最佳结构

c++ - 为什么 decltype 不是隐含的?

c++11 - 为什么在g++中-ansi和-std = c++ 11会冲突?

C++ std::unique_ptr 从函数返回并测试 null

c++ - 从 .docx 读取 theme1.xml,没有命名空间的属性

c++ - 使用 std::vector <mutex*> 调用 std::lock ()

c++ - boost::regex 和 std::regex 之间的不一致