C++中vector 容器的基本操作

vector是一种简单高效的容器,具有自动内存管理功能。对于大小为n的vector容器,它的元素下标是0~n-1。

vector有二个重要方法:
    begin(): 返回首元素位置的迭代器。
    end(): 返回最后一个元素的下一个元素位置的迭代器。

1、 vector对象创建的几种方式。
1)不指定容器元素个数。
    vector<double> v;
2)指定容器元素个数。
    vector<double> v(10);            //10个元素
3)指定容器元素个数并初始化。
    vector<double> v(10, 7.8);        //10个元素,初始化为7.8

2、访问和遍历vector容器
1)下标方式访问vector元素并赋值。类似数组的访问和赋值
    v[0] = 3.6;     v[3]=5.5;
2)使用迭代器配合循环对vector进行遍历访问

 vector<double> v();
v[] = 1.2;
v[] = 6.1;
v[] = 3.7;
vector<double>::iterator it;
for(it=v.begin(); it!=v.end(); it++)
{
cout<<*it<<endl;
}

3、 向vector中添加元素

1) 向vector容器的尾部追加新元素。
    v.push_back(new_element);
2) insert()方法在vector对象的任意位置前插入一个新元素,同时vector自动扩张一个元素空间,插入位置后的所有元素都向后挪动一个位置。
    v.insert(v.begin()+2, 12.5);        //在第二个元素前插入新元素12.5。
    v.insert(v.end(), 6.5);            //在容器的末尾加入了新元素6.5。

4、元素的删除
1) 删除一个元素或一段区间中所有元素
    v.erase(v.begin()+2);            //删除第二个元素,从0开始计数
    v.erase(v.begin()+1, v.begin()+5);    //删除第1~5中的所有元素。
2) 删除vector中所有元素
    v.clear();                //删除v中的所有元素

5、对vector中元素排序
1) sort()对元素排序。需要头文件”#include <algorithm>”
    sort(v.begin(), v.end());        //sort()默认升序排序

 //自己设计比较函数进行排序
bool comp(const int &a, const int &b)
{
return a>b;
}
sort(v.begin(), v.end(), comp); // 元素降序排列

2)reverse()反向排列。需要头文件”#include <algorithm>”

reverse(v.begin(), v.end());        //反向排列向量的从头到尾的元素

6、获得vector的大小
1) 使用size返回向量的大小,即元素个数。
    v.size();                //返回v的元素个数
2) empty()判断向量是否为空。
    v.empty();                //v如果为空,则返回逻辑真,即1,否则返回逻辑假0。

参考文献:
曾宗根, ACM程序设计, 北京大学出版社, 2008.11

上一篇:带你深入理解STL之Vector容器


下一篇:STL vector容器 和deque容器