在c++中,vector是乙個十分有用的容器,下面對這個容器做一下總結。
1 基本操作
(1)標頭檔案#include.
(2)建立vector物件,vectorvec;
(3)尾部插入數字:vec.push_back(a);
(4)使用下標訪問元素,cout
vector::iterator it;3 演算法for(it=vec.begin();it!=vec.end();it++)
cout<
(7)刪除元素: vec.erase(vec.begin()+2);刪除第3個元素
vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開始
(8)向量大小:vec.size();
(9)清空:vec.clear();
vector的元素不僅僅可以使int,double,string,還可以是結構體,但是要注意:結構體要定義為全域性的,否則會出錯。下面是一段簡短的程式**:
#include#include#include#includeusing
namespace std;
typedef struct rect
(1) 使用reverse將元素翻**需要標頭檔案#include
reverse(vec.begin(),vec.end());將元素翻轉(在vector中,如果乙個函式中需要兩個迭代器,
一般後乙個都不包含.)
(2)使用sort排序:需要標頭檔案#include,
sort(vec.begin(),vec.end());(預設是按公升序排列,即從小到大).
可以通過重寫排序比較函式按照降序比較,如下:
定義排序比較函式:
bool comp(const int &a,const int &b)
呼叫時:sort(vec.begin(),vec.end(),comp),這樣就降序排序。
**:
不可思議的縮小vetor
如果vector的空間不夠時,會自動的申請新的空間,空間大小為舊空間的2倍,然後將舊空間的資料拷貝到新空間,最後將舊空間釋放。這種保留額外的記憶體空間已被將來增長的需要,從而防止增加新元素時過於頻繁的重新分配。這也是vector比陣列好的一點。當然有沒有想過,1 如果原有的舊空間為128,現在需要的...
C 中 的使用
c 中的方括號可用於陣列,索引,屬性,更重要的是可以用於外部dll類庫的引用。c 實現.net元件與com元件的互操作 dllimport kernel32.dll 這叫引入kernel32.dll這個動態連線庫。這個動態連線庫裡面包含了很多windowsapi函式,如果你想使用這面的函式,就需要這...
c 中 的使用
對於習慣使用c進行開發的朋友們,在看到c 中出現的 符號,可能會犯迷糊,因為在c語言中這個符號表示了取位址符,但是在c 中它卻有著不同的用途,掌握c 的 符號,是提高 執行效率和增強 質量的乙個很好的辦法。在 c 學習提高篇 3 隱式指標的文章中我詳細介紹了在隱式指標 的用法,其實這兩個概念是統一的...