vector
vector为可变长数组(动态数组),定义的vector数组可以随时添加数值和删除元素
注意:在局部区域中(比如局部函数里面)开vector数组,是在堆空间里面开的。
在局部区域开数组是在栈空间开的,而栈空间比较小,如果开了非常长的数组就会发生爆栈。
故局部区域不可以开大长度数组,但是可以开大长度
vector
。
头文件:
#include
代码 | 含义 |
---|---|
vector<type(int,double,)>a | 初始化容器a |
b = a.front() | 返回容器第一个值 |
b = a.back() | 返回容器最后一个值 |
a.pop_back() | 删除最后一个数 |
a.push_back() | 在vector后添加一个数 |
a.size() | 容器的元素个数 |
a.clear() | |
a.resize() | |
a.insert(it, x) | 向任意迭代器it 插入一个元素x ,O(N),例如a.insert(a.begin()+2,-3)意为在a[2]前插入-3 |
a.erase(a,b) | 删除[a,b)的元素 |
a.begin() | 首个迭代器地址 |
a.end() | 返回最后一个元素后一个位置的迭代器(地址) |
a.empty() | 判断是否为空 |
#include<bits/stdc++.h>
using namespace std;
vector<int>a ;
int main()
{
for(int i = 0;i<5;i++)
{
a.push_back(i);
}
for(auto it = a.begin();it!=a.end();it++)
cout<<*it<<" "; //result:0 1 2 3 4
cout<<"\n";
auto b = a.front();
cout<<b; //result:0
cout<<"\n";
b = a.back();
cout<<b<<"\n"; //result:4
a.insert(a.begin()+2,-3);
for(auto it = a.begin();it!=a.end();it++)//遍历vector使用迭代器
cout<<*it<<" "; //result:0 1 -3 2 3 4
cout<<"\n";
a.erase(a.begin(),a.begin()+3);
for(auto it = a.begin();it!=a.end();it++)
cout<<*it<<" "; //result:2 3 4
cout<<"\n";
a.erase(a.begin(),a.begin()+3);
cout<<a.empty(); //result:1
}