#include <vector>
vector< 类型 > 标识符 ;
vector<int>G; 建立int类型
vector<int> G[N];///二维数组的建立
for(int i=0;i<N;i++)///清空
G[i].clear();
int index = upper_bound(G.begin(), G.end(), k)-G.begin();///查找插入位置
G.insert(G.begin()+index, k);///在index位插入k
G.push_back(t) 在数组的最后添加一个值为t的数据
G.size() 当前使用数据的大小
G.erase(G.begin()+2);删除第3个元素
G.erase(G.begin()+1,G.begin()+5);删除下标为1到5-1
G.empty() 判断vector是否为空 空返回1 否则0
G[n] 返回v中位置为n的元素
G.pop_back(); // 删除容器中最后一个元素(容器必须非空)
G.back(); // 返回容器中最后一个元素的引用
sort(vi.begin() , vi.end()); /// /小到大
reverse(vi.begin(),vi.end()) /// 反向 数组反向
迭代器iterator的使用 以及求和函数的直接应用
#include<cstdio> #include<vector> #include<iostream> #include<numeric> using namespace std; int main() { vector<int> v;///类似于一维数组 for(int i=0;i<10;i++) v.push_back(i);///从后方存入 for(vector<int>::iterator it=v.begin();it!=v.end();it++) cout<<*it<<" "; ///等价于printf("%d ",*it); cout<<endl; ///printf(" "); cout<<accumulate(v.begin(),v.end(),0)<<endl;///数组求和函数 头文件为<numeric> return 0; }
在vector中间添加数字
#include<cstdio> #include<vector> #include<iostream> #include<numeric> using namespace std; int main() { vector<int> v(3); v[0]=2; v[1]=7; v[2]=9; ///在下标为0 添加8 后面数后移一位 v.insert(v.begin(),8);///8 2 7 9 ///在下标为2处添加1 前面数不变 后面数后移一位 v.insert(v.begin()+2,1);///8 2 1 7 9 ///在末尾添加3 v.insert(v.end(),3);///8 2 1 7 9 3 vector<int>::iterator it; for(it=v.begin();it!=v.end();it++) cout<<*it<<" "; cout<<endl; return 0; }
元素的删除
#include<cstdio> #include<vector> #include<iostream> #include<numeric> #include<algorithm> #include<cstring> using namespace std; int main() { vector<int> v; for(int i=0;i<10;i++) v.push_back(i); ///删除下标为2的数 v.erase(v.begin()+2);///0 1 3 4 5 6 7 8 9 ///删除下标从1到5-1的数 v.erase(v.begin()+1,v.begin()+5);///0 6 7 8 9 for(int i=0;i<v.size();i++) printf("%d ",v[i]); return 0; }