当前位置:  开发笔记 > 编程语言 > 正文

建议使用任意值初始化/调整容器大小的方法

如何解决《建议使用任意值初始化/调整容器大小的方法》经验,为你挑选了1个好方法。

目前我正在初始化这样的list/ vector等等:

std::vector vec_rand(target_size);
std::generate(vec_rand.begin(), vec_rand.end(), std::rand);

..因为已经显示在这里.std::rand只是一个例子 - 它可以是任何功能.

我只是想知道是否有创建/调整大小的容器中,并对其进行初始化的任意值的值的方式在同一时间.

我知道我不需要期待大的性能提升,但是拥有s.th.会更好(而且更简洁).喜欢

vector my_list(10, std::rand);

要么

my_list.resize(target_size, std::rand);

而不是首先resize()使用默认值,而不是用所需内容覆盖它们.



1> Jonathan Pot..:

这在构造函数中(或在单个指令中)是不可能的.

您可以使用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);

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有