c++ - 在构造函数之后用零初始化 vector 的有效方法

标签 c++

<分区>

初始化 vector 最有效的方法是什么?我不想在构造函数中初始化它。

struct st{
        std::vector<int> var_dynamic;
        int i;
};
int main(){
for ( int k=1 ; k<10 ; k++)
{
        struct st st1;
        st1.i=1;
        int i = 999; // some integer value
        st1.var_dynamic.reserve(100000000); // make room for 10 elements
        std::vector<int> vec(1000,0);
        for (int n=1; n<1000000;n++)
        {
                st1.var_dynamic.push_back(1);
        }
} 
}

我认为这种方法效率不高。

最佳答案

I think this method couldn't be efficient.

好吧,你可以使用 constructor

 std::vector<int> var(100000000,0);

resize()功能

 var.resize(100000000,0);

我怀疑这些实现尽可能高效,而自己使用 push_back() 可能会产生一些不需要的副作用。

关于c++ - 在构造函数之后用零初始化 vector 的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34683151/

相关文章:

c++ - 为什么 strcpy_s 在我的系统中不存在?

C++ 多重继承 - 为什么你没有工作?

c++ - 如何在qt中删除之前检查指针是否存在

C++:与 OpenCV 互相关

c++ - 如何在我的 C++ 程序中使用 COM dll

以读写模式打开文件时c++文件流问题

c++ - 无法在我的 C++ 类中初始化 2d Vector

c++ - 虚拟继承中的派生类的sizeof

c++ - 等式中的倍数/除法困境

c# - 使用托管 C++ 包装器将字符串从 C# 传递到非托管 C#