C++ STL vector详解

写这个博客专栏就是为了以后备用。


简介

        vector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。


使用说明

头文件

#include <vector>

#include <string>

常用函数

vector.push_back()   //在数组的最后添加一个数据
vector.pop_back()    //去掉数组的最后一个数据 
vector.front() //返回第一个元素(栈顶元素)
vector.begin()           //得到数组头的指针,用迭代器接受
vector.end()             //得到数组的最后一个单元+1的指针,用迭代器接受
vector.clear()        // 移除容器中所有数据
vector.empty()         //判断容器是否为空
vector.erase(pos)        //删除pos位置的数据
vector.erase(beg,end)// 删除[beg,end)区间的数据
vector.size()         //回容器中实际数据的个数
vector.insert(pos,data) //在pos处插入数据


使用示例 

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
    vector <int> v;                            //定义vector
    vector<int>::iterator it;                 //定义一个vector迭代器
    for(int i = 10; i >= 1; i--)              //插入数据
        v.push_back(i);
    cout<<"输出:";
    for(it=v.begin();it!=v.end();it++)       //输出迭代器的值
        cout<<*it<<" ";
    cout<<endl;
    it-=1;
    cout<<"最后一个的值为:"<<*it<<"     "<<endl;
    v.erase(it);                             //删除最后一个元素
    cout <<"元素个数:" <<v.size() << endl;    //输出元素个数
    sort(v.begin(), v.end());                    //vector排序
    cout<<"排序后:";
    for(it=v.begin();it!=v.end();it++)            //输出vector元素
        cout << *it << " ";
    cout<<endl;
    v.insert(v.begin(),100) ;                 //在pos位置插入一个elem
    cout<<"第一个元素为:" <<v.front()<<endl;//输出第一个元素
    v.pop_back();                         //去掉最后一个元素
    cout << "元素个数:" <<v.size() << endl;//输出元素个数
    v.clear();                                //vector清空
    cout <<"清空后元素个数:" << v.size() << endl;    //输出元素个数

    return 0;
}


版权声明:本文为qq_25662827原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。