STL Vector常用操作

2021-10-09 09:27:26 字數 1636 閱讀 4510

vector<

int>a

; vector<

int>v(

10);//建立乙個具有10個元素的向量

vector<

int>v(

10,1)

;//10個元素初始值為1

vector<

int>

v(a)

;//拷貝a向量

vector<

int>

v(a.

begin()

, a.

begin()

+3);

//拷貝a向量的前三個數

a.resize(10

,2);

//將a向量的容量定為10,值為2

a.reserve

(100

)//將a向量的容量擴大到100

//下標統一從0開始算

vector<

int>v;

int a[10]

; v.

back()

;//獲取最後乙個元素

v.front()

;//獲取第乙個元素

v.push_back(1

);//從後面插入乙個元素

v.pop_back()

;//刪除最後乙個元素

v.erase

(v.begin()

+1);

//刪除第二個元素

v.erase

(v.begin()

+1, v.

begin()

+3);

//刪除第2個元素到第4個元素,注意左閉右開,第4個元素不刪除

v.insert

(v.begin()

+1,1

);//第二元素前面插入1

v.insert

(v.begin()

+1,3

,1);

//第二個元素前面插入3個1

v.insert

(v.begin()

+1, a +

3, a +5)

//第二個元素前插入a陣列的第四個元素到第五個元素

v.size()

;//返回元素數量,需要注意這裡返回的資料型別是無符號型,如果出現負數會出問題,一般轉為int

v.empty()

;//判斷是否為空

v.clear()

;//清空

sort

(v.begin()

, v.

end())

;sort

(v.begin()

, v.

end(

), greater<

int>()

);//從大到小排序

is_sorted

(v.begin()

, v.

end())

;//bool型判斷是否為公升序

reverse

(v.begin()

, v.

end())

;find

(v.begin()

, v.

end(),

10);//v陣列中查詢10,返回下標

STL vector的erase操作問題

一老大說 csdn 上有篇博文 關於stl vector 的erase 黑奇怪,抱著獵奇的心態,偶也去湊哈熱鬧,發現了一點問題,報告給大家。作者說下面的 是錯誤的 vectorshort m uintvector m uintvector.push back 10 m uintvector.push...

STL vector的實用操作(詳解舉例)。

vector簡而言之就是功能強大的陣列。陣列長度確定後,便不可改變,而vector確定後任然可以改變,並且vector還具有一些陣列不可使用的操作,接下來我就一一介紹。vector效率並沒有陣列高,所以如果知道陣列的長度,盡量別用vector 一般vector會與迭代器一同使用,所以下面我將用迭代器...

STL vector 輔助函式

template inline bool operator const vector tp,alloc x,const vector tp,alloc y 判斷相等 template inline bool operator const vector tp,alloc x,const vector ...