STL之vector函式詳解

2022-09-08 10:54:08 字數 2152 閱讀 4578

vector的建構函式和析構函式

vectorc

產生乙個空vector,其中沒有任何元素

vectorc1(c2)

產生另乙個同型vector的副本(所有的元素都被拷貝)

vectorc(n)

利用元素的default建構函式產生乙個大小為n的vector

vectorc(n,elem)

產生乙個大小為n的vector,每個元素值都是elem

vectorc(beg, end)

產生乙個vector,以區間[beg, end)做為元素初值

c.~vector()

銷毀所有元素,並釋放記憶體

vector的非變動性操作

c.size()

返回容器的大小

c.empty()

判斷容器是否為空,等價於size()==0,但可能更快

c.max_size()

返回容器最大的可以儲存的元素

c.capacity()

返回重新分配空間前所能容納的元素最大數量

reserve()

如果容量不足,擴大之

c1 == c2

判斷c1 是否等於c2

c1 != c2

判斷c1是否不等於c2

c1 < c2

判斷c1 是否小於c2

c1 > c2

判斷c1 是否大於c2

c1 <= c2

判斷c1是否小於等於c2

c1 >= c2

判斷c1是否大於等於c2

vectors的賦值操作

c1 = c2

將c2的全部元素賦值給c1

c.assign(n, elem)

複製n個elem,複製給c

c.assign(beg, end)

將區間[beg;end)內的元素賦值給c

c1.swap(c2)

將c1和c2元素互換

swap(c1,c2)

同上,此為全域性函式

直接訪問vectors元素的各項操作

c.at(idx)

返回索引idx標示的元素,如果idx越界,丟擲異常

c[idx]

返回索引idx標示的元素,不進行範圍檢查

c.front()

返回第乙個元素。不檢查第乙個元素是否存在

c.back()

返回最後乙個元素。不檢查最後乙個元素是否存在

備註:除了at()函式,其他函式發生越界,會引發未定義行為

vector的安插、移除相關操作

c.insert(pos,elem)

在pos位置上插入乙個elem副本,並返回新元素位置

c.insert(pos,n,elem)

在pos位置上插入n個elem副本,無返回值

c.insert(pos,beg,end)

在pos位置上插入區間[beg,end)內的所有元素的副本

沒有返回值

c.push_back(elem)

在尾部新增乙個elem副本

c.pop_back()

移除最後乙個元素,無返回值

c.erase(pos)

移除pos位置上的元素,返回下乙個元素的位置

c.erase(beg, end)

移除[beg, end)區間內的所有元素,

返回下乙個元素的位置

c.resize(num)

將元素數量改為num(如果size()變大了,

多出來的新元素都需以default建構函式完成)

c.resize(num,elem)

將元素數量改為num(如果size()變大了,

多出來的新元素都elem的副本)

c.clear()

移除所有元素,將容器清空

備註:安插和移除元素,都會使「作用點」之後的各個元素的iterator等失效,若發生記憶體重新分配,該容器身上的所有iterator等都會失效

STL之vector使用詳解

好久不用stl了,忘的差不多了,總結一下vector的使用方式,就不對每個方法做出詳細解釋了,只給出了如何用 void testvector 構造乙個元素值全為2大小為10的vector vectorv1 10,2 用指標構造 vectorv2 a,a 10 用vector iterator構造 v...

STL之vector成員函式

vector成員函式 成員函式 說明assign 清除vector並用指定元素填充空的vecotr at返回指定元素引用 back 返回最後乙個元素引用 begin 返回第乙個元素的iterator引用 capacity 返回當前vecotr可儲存的元素個數,與size不一樣 cbegin 返回第乙...

STL之vector動態陣列(詳解)

vector收錄在stl裡,是一種特殊的資料結構。它的中文名字叫做 動態陣列 或者 不定長陣列 有時也被翻譯成 容器 基本操作 1 構造乙個vector vectorvec。其中t是我們陣列要儲存的資料型別,可以是int float double等。初始的時候vec是空的 2 通過push back...