看不懂这个向量声明
Can't understand this vector declaration
我是一个真正的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。
相关文章:
- 声明高维向量的更简洁的方法
- 标准::向量声明中使用的模板参数
- 使用全局声明的向量时,C++双重释放错误/损坏
- 为什么这种向量声明无效?
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 如何声明一个标准::提升直方图的向量?提升直方图的类型是什么?
- 在类中声明向量的大小
- C++ 通过函数声明后初始化向量
- 向量索引变量声明(size_t 或 std::vector<DATATYPE>::size_type)
- 如何声明指向类对象的指针向量?
- 我不明白这个向量声明语句
- <string> C++ 中的向量声明
- 使用更大值和向量声明优先级队列
- 将向量声明为类成员
- 全局和主类中的向量声明
- C++如何将对象的向量声明为类的成员
- 如何将unique_ptr的向量声明为类数据成员?
- 对齐数据类型Eigen::矩阵的数组或向量声明
- 看不懂这个向量声明
- 将对象向量声明为另一个类的成员