将矢量初始化为零C /C 11

initialize a vector to zeros C++/C++11

本文关键字:初始化      更新时间:2023-10-16

我在C 11中知道,他们添加了该功能以初始化一个变量为零

double number = {}; // number = 0
int data{};  // data = 0

是否有类似的方法来初始化固定长度的std::vector

您不需要初始化列表:

std::vector<int> vector1(length, 0);
std::vector<double> vector2(length, 0.0);

可以以这种方式进行结构,类或联合的矢量初始化

std::vector<SomeStruct> someStructVect(length);
memset(someStructVect.data(), 0, sizeof(SomeStruct)*length);

使用C 的最新版本,您可以使用std::fill

我注意到有人提到它是评论。但应该是一个答案,并鼓励使用专家提到的标准图书馆算法,经过很好的测试和经过证明。

    std::vector<int> vecOfInts;
    vecOfInts.resize(10);
    std::fill(vecOfInts.begin(), vecOfInts.end(), 0);
    for (auto const& intVal : vecOfInts)
    {
        std::cout << intVal << " ";
    }

for c :假设向量具有最多100个int元素。您可以这样初始化:

int vector [100] = {0};