我知道在 C++11 中,他们添加了将变量初始化为零的功能
double number = {}; // number = 0
int data{}; // data = 0
是否有类似的方法将std::vector
固定长度的 a 初始化为全零?
您不需要初始化列表:
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 << " ";
}