vector
一维vector
- 今天clion提醒要如果判空直接成员函数
A.empty()
就行,返回true
表示为空(clion真的智能)。
二维vector
序言
- 二维vector就是一维vector,也是一维排列,只不过里面的每个元素类型是vector,与二维数组不同,作为元素的vector大小可以改变。
创建与赋值
- 创建大小为0的vector:
vector<vector<int> > A;
,因为这个二维vector是空的,所以不能够使用索引,否则会报错。 - 创建有大小的vector:
vector<vector<int> > B(行数, vector<int> (列数));
其中,行数不能省略,但列数可以省略:vector<vector<int>>B(0,vector<int>());
或者vector<vector<int> >B(0);
就相当于只对外侧一维vector创建大小。就像桶排序中创建n个桶,但桶里没数似的。此时每行的列宽可以不相等。
上面的创建方式就相当于vector<vector<int>>B(0,vector<int>(0));
- 对于已经创建好行数的二维vector B,可以直接B[i].push_back(temp),temp类型是
vector<int>
。 - 创建有大小还有初始值的二维vector B,
vector<vector<int> > B(行数, vector<int> (列数,初始值));
- 当创建有大小的vector后(不为0),vector就是一堆0,再用
push_back
其实是在0后面push_back
,而不是替换0的值。 - 对于二维vector C,
C.push_back()
是向C的行中添加vector,括号中类型应该是vector<int>
。 - 对于二维vector D,
D.back()
返回的是最后一行vector的引用,.back()[x]就是选最后一行vector的第x+1个元素。 - 对于二维vectorE,
E.size()
返回的是行数,也就是以vector为元素的一维数组大小。E[0].size()
返回的是列数,就是随便取出一个vector元素,然后用它的size()函数。
本作品采用《CC 协议》,转载必须注明作者和本文链接