c STL標準模板庫 vector容器

2021-10-13 14:54:23 字數 2148 閱讀 4703

vector是stl標準模板庫中的乙個容器,可以容納不同的資料型別,並且資料可以自動向前增長,因此稱之為向量,vector是乙個序列式容器,裡面的底層實現是乙個順序表結構

1.資料自動初始化為0

2.可以動態增長長度(相比與陣列強大太多,可以用vector取代陣列)

3.支援隨機訪問資料

4.對記憶體邊界進行檢查

5.自動進行記憶體的申請和釋放(vector底層實現,不用人為操作)

1.需要呼叫標頭檔案:#include

2.需要開啟命名空間std:using namespace std;

3.初始化的四種方式

4.vector對資料的操作

5.vector的迭代器

6.vector相容c語言

6.使用#中的sort函式對vector的資料元素排序

//vector《資料型別》變數名;

#include

#include

#include

using namespce std;

intmain()

;//用範圍for迴圈遍歷vector

for(

auto e:vec4)

cout

int a=10;

vec4.

push_back

(a);

//尾插資料

vdc4.

pop_back()

;//尾刪資料

vec4.

size()

;//獲取vector的長度(儲存元素個數)

int n=20;

/*vector 內部資料可以進行自動增長,不會像c語言一樣永遠是固定的,

可以隨時改變它的長度和大小*/

vec4.

resize

(n);

//改變vector容器的大小(引數:int)

//vector中的迭代器

vector<

int>

::iterator iter=vec4.

begin()

;//初始化儲存首位址

*iter=10;

//賦值改變資料

cout<

//迭代器遍歷

for(

auto it = v.

begin()

; it != v.

end(

); it++

) cout <<

"\n"

;/* vector的特性非常強大了,但是,我們很多情況要使用c語言的陣列,

可能舊的函式和介面 需要呼叫c語言的

陣列函式

data() 函式,返回c語言的指標*/

//通過data函式返回c語言指標

int*p=vec4.

data()

;//通過首位址和尾位址,進行拷貝原來的陣列

int arr[10]

=;vector<

int>

vec4

(arr,arr+10)

;//通過迭代器讓vector與vector之間進行賦值

vector<

int>vec5=

; vector<

int>

vec6

(vec5.

begin()

,vec.

end())

;//正向賦值

//使用反向迭代器逆序賦值

//vectorvec6(vec5.rbegin(),vec5.rend());

//使用演算法庫的sort函式對vector進行排序

sort

(vec5.

begin()

,vec5.

end())

;//從小到大

for(

auto e:vec5)

cout

(vec5.

rbegin()

,vec5.

rend()

);//從大到小

for(

auto e:vec5)

cout

("pause");

return0;

}

C STL標準模板庫之容器vector

vector是stl標準模板庫中的重要容器之一,可以通過設定來存放各種不同型別的資料,在stl中vector的實現方式是類模板,這些模板的引數允許我們指定容器中元素的資料型別,在結構上更加靈活,並且能夠避免重複編碼。在工程中建立乙個vector物件,在vector上右鍵轉到定義,可以找到vector...

C STL 標準模板庫

1.泛型程式設計 在c 中,模板是泛型程式設計的基礎。下面有乙個stl初體驗的 include include include include include include using namespace std 自定義函式物件 template class square int test int...

C STL標準模板庫

stl共有6中元件 容器 容器介面卡 迭代器 演算法 函式物件 仿函式 和函式介面卡。最常用的是順序容器,順序容器內的元素按其位置進行儲存和訪問。除順序容器外,標準庫還定義了幾種關聯容器。這裡我們主要講一下順序容器。標準庫定義了三種順序容器型別 vector list和deque,它們的差別在於訪問...