【OI】C++STL 不定长数组 vector

时间:2022-01-14 07:55:43

Vector 本来是向量的意思,只不过在用法上类似于一个不限长度的数组。

定义语法:vector<数据类型> 名称;

一、头文件:<vector>  (bits/stdc++请忽略)

二、常用方法:

  a.size();  //读取大小

  a.resize():  //改变大小

  a.push_back();  //向尾部添加元素

  a.pop_back();  //删除最后一个元素

  a.clear();  //清空

  a.empty():  //返回是否为空

三、遍历

  STL的数据类型几乎(也许是全部)使用迭代器遍历。

  vector<int>::iterator it = a.begin();  //创建一个vector类型的迭代器(类似于指针)指向a的首地址

  在for中写就是:

  for (vector<int>::iterator it = a.begin(); it != a.end();it++)

  然后就可以使用*it来访问指向的地址的值了。

四、其他

  插入元素:    vec.insert(vec.begin()+i,a);  在第i+1个元素前面插入a;  (也就是说这个a就是i+1的位置)
  删除元素:    vec.erase(vec.begin()+2);  删除第3个元素
  vec.erase(vec.begin()+i,vec.end()+j);  删除区间[i,j-1];区间从0开始  (这个争议比较大,保留疑惑,正常不用)

待补充…………