看不懂这个向量声明

Can't understand this vector declaration

本文关键字:向量 声明 不懂      更新时间:2023-10-16

我是一个真正的c++新手,我有一个非常简单的问题。

vector<int> s[10];

这个声明实际上是做什么的?s是一个能容纳10个整数的向量吗?

vector<int> s(10);

如果这是一个愚蠢的问题,我真的很抱歉,但是我真的不明白这些声明是做什么的。

谢谢!

第一个是一个包含10个空向量的数组。

std::vector和内置数组类型的混合。特别是std::vector;

的数组
vector<int> s[10];

表示创建10个矢量对象。你可以这样想:

vector<int> s0;
vector<int> s1;
...
vector<int> s10;

向量对象的数量是固定的。每个向量中的项数可以变化。

Vector有如下构造函数:

vector (size_type n);

第二个就是声明一个大小为10的int型向量

vector<int> s[10];表示"s"是一个数组,它有10个元素,每个元素的类型都是vector<int>

vector<int> s(10);表示"s"是一个vector<int>,并且这个向量的大小是10,但这不是一个声明。

可以有更复杂的声明,当声明一个函数指针指向有很多形参和复杂返回值的函数时。

例如:

vector<int> (*func[10])(int *);该指针指向一个接收int *形参的函数,并返回一个vector<int>值,加上它是一个该类指针的数组,数组的大小为10。