如何在C++中初始化一个所有值为0的向量?

7

在数组中,我们可以执行int arr[100]={0},这会将数组中的所有值初始化为0。我尝试使用向量相同的方式:vector <int> v(100)={0},但是会出现错误error: expected ‘,’ or ‘;’ before ‘=’ token。如果我们可以通过C ++的"memset"函数来实现,请也告诉我这个解决方案。


4
数组的常见误解:你不需要写 {0},人们认为_那_就是默认值,好像写{5}会把它们全部构造成5。只需写 int arr[100] = {}; 即可将它们默认构造为0,提供一个单独的值将构造第一个值为该值,其余为0 - Tas
也许std::vector构造函数的参考会有所帮助? - Some programmer dude
1个回答

32

您可以使用:

std::vector<int> v(100); // 100 is the number of elements.
                         // The elements are initialized with zero values.

您可以使用以下方法明确表达零值:

std::vector<int> v(100, 0);
您可以使用第二种形式来将所有元素初始化为除零以外的其他值。
std::vector<int> v(100, 5); // Creates object with 100 elements.
                            // Each of the elements is initialized to 5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接