变长数组vector
vector译为向量,一般来说也叫变长数组,也就是长度可以任意变化的数组,有些题目需要开很多数组,往往造成内存超限,使用vector简单方便,还可节省空间。
头文件
vector 的头文件是using namespace std;
如何定义
定义格式为vector<type_name> name; 其中的type_name可以是数据类型,像int ,double ,char ,string 或者是vector 本身这样的 例:
vector<int> a;
vector<double> a;
vector<node> a;
注意事项
如果type_name 也是一个vector 的容器,那么定义时需要在两个> 符号之间加一个空格,不然编译器会误认为是位运算的右移符号>> ,例如:
vector<vector<int> > a;
如何访问
访问vector中的元素一般使用下标访问 下标访问:对于vector<type_name>a,可以用a[i]来访问,其中,0≤i≤a.size() – 1,a.size()表示vector中元素的个数。
可变长数组常用函数
当然啦,C++的设计者也十分的良心,为我们设计了许多好用的函数,常用函数如下
插入
push_back(); 解释:将括号里的值压入变量的最后,时间复杂度是O(1). 举个例子:
vector<int>a;
int x;
cin>>x;
a.push_back(x);
在变长数组赋值前,是不能使用下标来赋值的,只能一位一位的压入,不能a[0]=x 这样赋值。
取元素个数
size(); 解释:如果是一维数组,size()用来获得vector中元素个数;如果是二维数组,size()用来获得vector中第二维的元素个数,时间复杂度为O(1)。
删除
pop_back() 解释:用来删除vector中的尾元素。时间复杂度为O(1)
清空
clear() 解释:用来清空vector中的所有元素。时间复杂度为O(n)
插入
insert() 解释:insert(it, x) 用来向vector任意迭代器it处插入元素x。时间复杂度为O(n)。 还有一种写法,但是不常见,是insert(it ,x,y) ,并不是插入x和y而是插入x个y。
删除指定元素
erase() 解释:erase() 用来删除vector 中的元素,有两种用法,一是erase(it) ,删除迭代器it处的单个元素;二是erase(first, last) ,删除左开右闭区间[first, last) 内的所有元素。
关于vector 这次就讲到这里,如果你觉得以上内容对你有帮助的话,被忘了点个赞再走啊 QAQ
|