STL之vector向量容器常用方法

来源:互联网 发布:大数据解决方案 ppt 编辑:程序博客网 时间:2024/06/05 22:46

vector向量容器不但能像数组一样对元素进行随机访问,还能在尾部插入元素,是一种简单,高效的容器,完全可以代替数组
vector具有内存自动管理功能,对于元素的插入和删除,可动态调整所占的内存空间
vector容器的下标是从0开始计数的

创建vector对象

创建vector对象常用的有三种形式。
(1)不指定容器的元素个数,如定义一个用来存储整型的容器:
vector<int> v; 
(2)创建时,指定容器的大小,如定义一个用来存储10个double类型元素的向量容器:
        vector<double>v(10)
     注意,元素的下标为0~9;另外,每个元素的值被初始化为0.0。
(3)创建一个具有n个元素的向量容器对象,每个元素具有指定的初始值:
vector<double>v(10,9.6)
   上述语句定义了v向量容器,共有10个元素,每个元素的值是8.6

用迭代器访问vector元素

#include<iostream>#include<vector>#include<numeric>using namespace std;int main(int argc,char* argv[]){    vector<int> v(3);    int i;    for(i=0;i<10;i++)    {        //尾部元素扩张方式赋值,在vector容器在尾部追加新元素        v.push_back(i);    }    vector<int>::iterator it; //用迭代器定义变量    for(it=v.begin();it!=v.end();it++)    {        cout<<*it<<" ";    //输出迭代器当前位置上的元素值    }    cout<<endl;             //回车换行    cout<<accumulate(v.begin(),v.end(),0)<<endl;    //统计并输出向量所有元素的和    }


插入

insert()方法可以在vector对象的任意位置前插入一个新的元素,同时,vector自动扩张一个元素空间,插入后的所有元素一次向后挪动一个位置
注意:insert()方法要求插入的位置,是元素的迭代器位置,而不是元素的下标

int main(int argc,char* argv[]){    vector<int> v(3);       v[0]=2;    v[1]=4;    v[2]=6;    v.insert(v.begin(),1);    v.insert(v.begin()+2,3);    v.insert(v.begin()+4,5);    vector<int>::iterator it;    for(it=v.begin();it!=v.end();it++)    {        cout<<*it<<" ";    }    cout<<endl;    return 0;}


删除

erase()删除一个或一段区间内的元素
clear()一次性删除vector内的所有元素
 
v.erase(v.begin()+2);   //删除第几个元素
v.erase(v.begin()+2,v.begin()+5);   //删除迭代器一段区间内的元素
v.clear();          //清空向量

reverse反向排列

reverse(v.begin(),v.end());

sort从小到大

 sort(v.begin(),v.end());

向量的大小

size()向量的大小
empty()返回向量是否为空

cout<<v.size()<<endl;cout<<v.empty()<<endl;








原创粉丝点击