Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在没有循环的情况下初始化std::vector? std::vector v; 对于(size_t i=0;i_C++_Vector_Initialization_Std_Cycle - Fatal编程技术网

C++ 如何在没有循环的情况下初始化std::vector? std::vector v; 对于(size_t i=0;i

C++ 如何在没有循环的情况下初始化std::vector? std::vector v; 对于(size_t i=0;i,c++,vector,initialization,std,cycle,C++,Vector,Initialization,Std,Cycle,您可以使用具有大小的构造函数。这将初始化所有元素的值。对于int这意味着零初始化: std::vector<int> v; for (size_t i=0; i<100; i++) v.push_back(0); std::vector v(100);//100个值为0的元素 如果需要不同的数字,则可以传递第二个参数和所需的值: std::vector<int> v(100); // 100 elements with value

您可以使用具有大小的构造函数。这将初始化所有元素的值。对于
int
这意味着零初始化:

    std::vector<int> v;
    for (size_t i=0; i<100; i++) 
       v.push_back(0);
std::vector v(100);//100个值为0的元素
如果需要不同的数字,则可以传递第二个参数和所需的值:

std::vector<int> v(100); // 100 elements with value 0
std::vector v(100,42);//100个值为42的元素

您可以使用具有大小的构造函数。这将初始化所有元素的值。对于
int
这意味着零初始化:

    std::vector<int> v;
    for (size_t i=0; i<100; i++) 
       v.push_back(0);
std::vector v(100);//100个值为0的元素
如果需要不同的数字,则可以传递第二个参数和所需的值:

std::vector<int> v(100); // 100 elements with value 0
std::vector v(100,42);//100个值为42的元素

< /代码>

如果您想在构造上初始化,请考虑@ JuangopaZa的答案;但是如果您想在代码的任何其他部分中为“代码>向量\代码”中的所有记录设置相同的值,则可以考虑采用.< /P>

如果您想在构造上初始化,请考虑@ JuangopANZA的答案;但是,如果您想设置SA,请参见在代码中的所有记录中的ME值在代码的任何其他部分中都可以考虑采用。

您不想这样做。<代码> V.Resisith'(value)<代码>或<代码> v.插入(v.Enter),n,value)
将是更好的解决方案。通常的原因是:当容器存在时,如果没有其他原因,总是选择容器的成员函数会更有效。(在这种情况下:
resize
insert
将不会执行多个重新分配。
std::fill
可以执行许多操作。)您不想这样做。
v.resize(value)
v.insert(v.end(),n,value)
将是更好的解决方案。通常的原因是:当容器存在时,始终首选容器的成员函数,如果没有其他原因,那么它将更有效。(在这种情况下:
resize
insert
将永远不会执行多个重新分配。
std::fill
可以执行许多操作。)