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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章