gpt4 book ai didi

c++ - (重新)将 vector 初始化为具有初始值的特定长度

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:39 31 4
gpt4 key购买 nike

作为函数参数,我得到一个 vector<double>& vec (一个输出 vector ,因此是非常量)具有未知的长度和值。我想将此 vector 初始化为全为零的特定长度 n。

这会起作用

vec.clear();
vec.resize( n, 0.0 );

这也行得通:

vec.resize( n );
vec.assign( n, 0.0 );

第二种效率更高吗(因为不涉及内存释放/分配)?有没有更有效的方法来做到这一点?

最佳答案

std::vector<double>(n).swap(vec);

在此之后,保证 vec 的大小和容量为 n,所有值为 0.0。

也许自 C++11 以来更惯用的方式是

vec.assign(n, 0.);
vec.shrink_to_fit();

第二行可选。在 vec 以超过 n 个元素开始的情况下,是否调用 shr​​ink_to_fit 是在保留比现在更多的内存之间的权衡需要与执行重新分配。

关于c++ - (重新)将 vector 初始化为具有初始值的特定长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/173995/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com