C STL vector容器和大小操作

2021-10-20 20:47:34 字數 3691 閱讀 4662

功能描述:

對vector容器和大小操作

函式原型:

empty()

;//判斷容器是否為空

capacity()

;//容器的容量

size()

;//返回容器指定長度為num,若容器變長,則以預設值填充新位置。

//如果容器變短,則末尾超出容器長度的元素被刪除

resize

(int num, elem)

;//重新指定容器的長度為num,若容器變長,則以elem值填 充新位置。

//如果容器變短,則末尾超出容器長度的元素被刪除

#include

#include

using

namespace std;

void

printvector

(vector<

int>

&v) cout << endl;

}//vector容器和大小

void

test01()

printvector

(v1);if

(v1.

empty()

)//為真 代表容器為空

else

//重新制定大小

v1.resize(15

,88);

//利用過載版本,可以指定預設值填充,引數2

printvector

(v1)

;//如果重新制定的比原來長了,預設用0填充新的位置

v1.resize(5

);printvector

(v1)

;//如果重新指定比原來小,後面的數字會刪掉

}int

main()

總結:

判斷是否為空—empty

返回元素個數—size

返回容器容量–capacity

重新指定大小–resize

功能描述:

對vector中的資料的訪問操作

函式原型:

at

(int idx)

;//返回索引idx所指的資料

operator

;//返回索引idx所指的資料

front()

;//返回容器中第乙個資料元素

back()

;//返回容器中最後乙個資料元素

#include

#include

using

namespace std;

//vector資料訪問

void

test01()

//利用【】方式訪問陣列元素

for(

int i =

0; i < v1.

size()

; i++

) cout << endl;

//利用at方式訪問元素

for(

int i =

0; i < v1.

size()

; i++

) cout << endl;

//獲取第乙個元素

cout <<

"第乙個元素為:"

<< v1.

front()

<< endl;

//獲取最後乙個元素

cout <<

"最後乙個元素為:"

<< v1.

back()

<< endl;

}int

main()

總結:

除了用迭代器獲取vector容器中元素,【】和at也可以

front返回容器第乙個元素

back返回容器最後乙個元素

功能描述:

實現兩個容器內元素進行互換

函式原型:

swap(vec); //將vec與本身的元素互換

#include

#include

using

namespace std;

void

printvector

(vector<

int>

&v) cout << endl;

}//1.基本使用

void

test01()

cout <<

"交換前:"

<< endl;

printvector

(v1)

; vector<

int>v2;

for(

int i =

10; i >

0; i--

)printvector

(v2)

; cout <<

"交換後:"

<< endl;

v1.swap

(v2)

;printvector

(v1)

;printvector

(v2);}

//2.實際用途

//巧用swap可以收縮記憶體空間

void

test02()

cout <<

"v的容量為:"

<< v.

capacity()

<< endl;

cout <<

"v的大小為:"

<< v.

size()

<< endl;

v.resize(3

);//重新指定大小

cout <<

"v的容量為:"

<< v.

capacity()

<< endl;

cout <<

"v的大小為:"

<< v.

size()

<< endl;

//巧用swap收縮記憶體

vector<

int>

(v).

swap

(v);

cout <<

"v的容量為:"

<< v.

capacity()

<< endl;

cout <<

"v的大小為:"

<< v.

size()

<< endl;

}int

main()

總結:swap可以使兩個容器互換,可以達到使用的收縮記憶體效果

功能描述:

減少vector在動態擴充套件容量時的擴充套件次數

函式原型:

reserve

(int len)

;//容器預留len個長度,預留位置不初始化,元素不可訪問。

#include

#include

using

namespace std;

//vector預留空間

void

test01()

} cout <<

"num="

<< num << endl;

}int

main()

總結:如果資料量較大,可以一開始利用reserver預留空間

C STL vector容器 簡單實用整理

1.1 介紹 vector 是c 中stl庫里的乙個容器,實質就是乙個長度未定的陣列,而且他還有一些常用操作 封裝 在了vector型別內部。1.2 舉例說明 vector是乙個模板類,所以需要用vector int a或者vector double b來宣告乙個vector,並且要引用 inclu...

容器容量和容器大小(capacity和size)

1 容器容量 容器所能容納元素的個數,通常大於容器的實際儲存元素的個數。s.capacity 檢視容器容量 s.reserve len 擴充套件當前容器的容量,如果len大於當前容器容量,那麼將會將容器的容量擴充套件為len,且不會對新擴充套件的空間進行初始化 當len小於等於當前容器容量時,什麼也...

C vector容器 容量和大小

vector容量和大小 功能描述 對vector容器的容量和大小操作 函式原型 如下 include using namespace std include vector容器的容量和大小操作 void printvector vector int v cout endl void test01 pr...