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

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM