c++中vector容器的功能及應用。


vector基本操作:

   1.頭文件 #include<vector>。 注:一定要加上using namespace std;

   2.vector對象的創建: vector<int/char/string/基本數據類型/自定義類型/結構體類型/.....>vec ; (以下以int類型為例)

   3.vector對象尾部插入數據: vec.push_back(a);     注意: vector對象的下標從0開始!!!!!

   4.vector對象尾部刪除數據: vec.pop_back(a);    

   5.vector中定位函數:          vec.at(i);      //相當於vec[i];

   6.vector中第一個元素的指針: vec.begin();

   7.vector中最后一個元素+1的指針:vec.end();

   8.vector中得到第一個元素的值: vec.front();

   9.vector中得到最后一個元素的值: vec.back();

   10.判斷vector是否為空:           vec.empty();

   11.交換vector兩個容器的值:     vector<int>a.swap(vec);

   12.vector對象的訪問:vec[0],vec[1],vec[2]..............

                                使用迭代器訪問vector中的元素         

vector<int>::iterator it; for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;                      //遍歷所有元素~

 

      13.vector元素的插入: vec.insert(vec.begin()+i,a); 在第 i+1 個元素前面插入a.

    14.vector元素的刪除: vec.erase(vec.begin()+2);   刪除邏輯上的第3個元素,即vec[2],且后面元素自動前移一個位置。

                 vec.erase(vec.begin()+i,vec.begin()+j);   刪除區間[i,j-1]的元素;

    15.vector中元素的個數: int count = vec.size();

    16.vector對象的清空:    vec.clear();

    17.vector中元素的翻轉:reverse(vec.begin(),vec.end());     注:reverse()函數需要頭文件  #include<algorithm>

    18 .vector中元素的排序:

#include <algorithm>
bool cmp(int a,int b){ return a>b; } sort(vec.begin(),vec.end()); // 按升序排序
sort(vec.begin(),vec.end(),cmp); // 按降序排序

  19.vector中元素的去重:

 1 //在STL中unique函數是一個去重函數, unique的功能是去除相鄰的重復元素(只保留一個),其實它並不真正把重復的元素刪除,  2 //是把重復的元素移到后面去了,然后依然保存到了原數組中,然后 返回去重后最后一個元素的地址,  3 //因為unique去除的是相鄰的重復元素,所以一般用之前都會要排一下序
 4 #include <iostream>
 5 #include <vector>
 6 #include <algorithm>
 7 using namespace std;  8 int main()  9 { 10     int a[9]= {0,1,2,3,4,8,9,3,5}; 11     vector<int> vec(a,a+9); 12 
13     sort(vec.begin(), vec.end());   //一定要排序!!!!!!
14     vector<int>::iterator iter = unique(vec.begin(),vec.end()); 15  vec.erase(iter,vec.end()); 16     for( iter = vec.begin() ; iter != vec.end() ; iter ++ ) 17         cout<<*iter<<" "; 18     return 0; 19 }

 

 


 

 

 

 

參考 http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html 


免責聲明!

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



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