📜  将向量初始化为全零 c++ (1)

📅  最后修改于: 2023-12-03 14:53:48.562000             🧑  作者: Mango

将向量初始化为全零 C++

在 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() 函数

另一种方法是使用 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++ 代码时更加高效地操作向量。