首页 > 代码库 > C++ STL vector详解

C++ STL vector详解

一.解释:

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

二.用法:

  1.头文件

#include <vector> 

  2.定义方式

a) vector<int>v1;//vector元素为 int 型  
b) vector<string>v2;// vector元素为string型  
c) vector<node>v3;//入队元素为结构体型,结构体可以自行定义

vector<int>::iterator it;//定义一个迭代器

  3.常用操作

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

 

 

 

 

 

<style>p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify; orphans: 0; widows: 0 } p.western { font-family: "Calibri", serif } p.cjk { font-family: "宋体" } p.ctl { font-family: "Times New Roman"; font-size: 12pt } a:link { }</style>

C++ STL vector详解