📅  最后修改于: 2023-12-03 14:53:48.562000             🧑  作者: Mango
在 C++ 中,当我们创建一个向量(vector)时,我们需要对其进行初始化。一种常见的初始化方式是将向量的所有元素都设置为全零。
以下是在 C++ 中将向量初始化为全零的几种方法。
一种简单的方式是使用赋值运算符(=
)来将整个向量设置为全零。
vector<int> vec(5); // 创建长度为 5 的整型向量 vec
vec = vector<int>(vec.size(), 0); // 将 vec 的所有元素赋为 0
其中,vector<int>(vec.size(), 0)
在创建另一个同样长度为 5 的整型向量并将其所有元素设置为 0 后返回。接着,这个向量再被赋值给 vec。
另一种方法是使用 fill()
函数,它可以将指定范围的向量设置为指定值。
vector<int> vec(5); // 创建长度为 5 的整型向量 vec
fill(vec.begin(), vec.end(), 0); // 将 vec 的所有元素赋为 0
这里,fill()
函数接受两个参数:第一个参数是指向向量的起始位置的迭代器,第二个参数是指向向量的末尾位置的迭代器。
还有一种方法是使用全局函数 memset()
,它可以将指定位置的内存块的所有字节设置为指定值。这种方法与 fill()
函数的效果是相同的。
vector<int> vec(5); // 创建长度为 5 的整型向量 vec
memset(&vec[0], 0, vec.size() * sizeof(int)); // 将 vec 的所有元素赋为 0
在这个例子中,&vec[0]
返回指向向量起始位置的指针,vec.size()*sizeof(int)
是要设置的内存块的大小。
这篇文章介绍了 C++ 中将向量初始化为全零的几种方法,包括使用赋值运算符、fill()
函数和 memset()
函数。这些方法可以让我们在编写 C++ 代码时更加高效地操作向量。