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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!