目前我正在初始化这样的list
/ vector
等等:
std::vectorvec_rand(target_size); std::generate(vec_rand.begin(), vec_rand.end(), std::rand);
..因为已经显示在这里.std::rand
只是一个例子 - 它可以是任何功能.
我只是想知道是否有创建/调整大小的容器中,并对其进行初始化的任意值的值的方式在同一时间.
我知道我不需要期待大的性能提升,但是拥有s.th.会更好(而且更简洁).喜欢
vectormy_list(10, std::rand);
要么
my_list.resize(target_size, std::rand);
而不是首先resize()
使用默认值,而不是用所需内容覆盖它们.
这在构造函数中(或在单个指令中)是不可能的.
您可以使用vector::reserve()
分配内存(不进行初始化),然后std::generate_n
使用a back_inserter
来填充数组.
my_list.reserve(target_size); std::generate_n(std::back_inserter(my_list), target_size, std::rand);