向量定义是什么意思?

时间:2020-10-05 10:19:18

标签: c++ arrays vector declaration

我一直认为c ++中的vector<int> vec[10] = {};意味着,我们创建了一个10个int的向量并使它们等于零。但实际上,情况完全不同。 那么,当我们以这种方式声明向量时会发生什么呢? (我以为只是因为在c ++ int arr[10] = {}中,我们创建了一个由10个元素组成的数组并使它们等于零)

1 个答案:

答案 0 :(得分:3)

这两个声明之间的唯一区别

int arr[10] = {}

vector<int> vec[10] = {};

是类型说明符。

在第一个声明中,声明了一个由int类型的10个元素组成的数组。

在第二个声明中,声明了一个由std::vector<int>类型的10个元素组成的数组。

但是这种差异会影响元素的初始化方式。

在第一个声明中,数组的所有元素都被零初始化。 在第二个声明中,所有使用默认构造函数创建的元素。那就是所有10个向量都是空的。

如果要声明类型为std::vector<int>的向量,该向量将包含10个元素,则应编写

std::vector<int> vec( 10 );

在这种情况下,对象vec将包含10个将被值初始化的元素,对于类型int,它们将被初始化为零。

相关问题