#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("\n");
    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;
}

 

posted on 2017-11-17 09:36  云胡不喜。  阅读(170)  评论(0编辑  收藏  举报