vertor容器

头文件#include<vector>

1.创建vector对象

1.不指定容器大小  vector <int> v;

2.指定容器大小 vector <double> v(10);

3.附带初值 vector <double> b(10,8.6);//此容器有十个元素,每一个都是8.6;

2.元素的插入

insert()方法可以在vector容器的任意位置插入一个元素,同时所有后面的元素向后移动一位。注意:需要用迭代器;

3.元素的删除

erase()方法可以删除vector中迭代器所指的一个元素或者一段区间中的元素;clear()方法则一次性删除vector中的所有元素。

#include<iostream>
#include<stdio.h>
#include<vector>
#include<algorithm>
bool comp(const int &a,const int &b)
{
    if(a!=b)return a>b;
    else return a>b;
}
using namespace std;
int main()
{
    vector<int>v;//定义verctor容器v;
    v.push_back(2);//随时向尾部添加元素
    v.push_back(5);
    v.push_back(7);
    v.push_back(9);
    v.push_back(11);
    v.push_back(13);
    for(int i=0;i<6;i++)
        printf("%d ",v[i]);//下标法访问vector元素;
    printf("\n");
    //迭代器法访问vector容器元素;
    vector<int>::iterator it;//定义迭代器变量it
    for(it=v.begin();it!=v.end();it++)
        cout<<*it<<" ";//输出迭代器上的元素;
    cout<<endl;
    //元素的插入;
    v.insert(v.begin(),8);
    v.insert(v.begin()+3,4);//在第三个元素前插入4,注意是原始容器的第三个元素之前;
    for(it=v.begin();it!=v.end();it++)
        printf("%d ",*it);
    printf("\n");
    //元素的删除;
    v.erase(v.begin()+2);//删除第二个元素;
    v.erase(v.begin()+3,v.begin()+5);//删除3到5的元素;
    for(it=v.begin();it!=v.end();it++)
        printf("%d ",*it);
    printf("\n");
    /*v.clear();//清空容器中的元素;
    printf("%d\n",v.size());//输出容器的大小;*/
    reverse(v.begin(),v.end());//反向排列容器中的所有元素;
    for(it=v.begin();it!=v.end();it++)
        cout<<*it<<" ";
    cout<<endl;
    sort(v.begin(),v.end());//sort排序;
    for(it=v.begin();it!=v.end();it++)
        cout<<*it<<" ";
    cout<<endl;
    sort(v.begin(),v.end(),comp);//使用comp函数反向排序;
    for(it=v.begin();it!=v.end();it++)
        cout<<*it<<" ";
    cout<<endl;
    cout<<v.empty()<<endl;//判断容器是否为空;
    v.clear();
    cout<<v.empty()<<endl;
    return 0;
}

posted @ 2016-04-17 21:40  认清本质  阅读(205)  评论(0编辑  收藏  举报