C 標準庫vector型別

2021-07-05 00:13:02 字數 1736 閱讀 7337

vector屬於順序容器,所謂順序容器,就是元素的順序與元素的值無關,與元素加入容器的位置相對應。

對於vector可以將其理解為可變大小陣列,支援快速隨機訪問,在尾部之外的位置插入刪除可能會比較慢。了解完概念接下來就開始學習它的用法

假設以下**前面都包含vector標頭檔案,幷包含using namespace std;

vector

vec;

此種定義下vec容器為空,其中尖括號中是容器中儲存的型別

vector

vec(10,5);

此種定義下vec中儲存了10個5

(3)

int a[5];

vector

vec(begin(a),end(a));

此種定義下vec儲存了陣列a中的所有元素

vector的定義方法有很多,這裡就只列一些常見的

(1)通過迭代器訪問

vector

vec;

vector

::iterator it;

for(it = vec.begin();it != vec.end();it++)

(2)通過下標訪問

vector

vec(3,5);

for(int i=0;i<3;i++)

cout

0;}

(2)在任意位置插入資料

//在第i+1個資料前插入a

vec.insert(vec.begin()+i,a);

例項如下

#include

#include

using

namespace

std;

int main(void)

cout

0;}

(3)刪除元素

刪除第i+1個元素

vec.erase(vec.begin()+i);

例項如下

#include

#include

using

namespace

std;

int main(int argc,char **argv)

cout

0;}

(4)vector的大小

//返回vector中已有的元素個數

vec.size();

//返回vector中可儲存的最大元素個數

vec.max_size();

//判斷vector是否為空

vec.empty()

例項如下

#include

#include

using

namespace

std;

int main(int argc,char **argv)

由於向vector中新增元素或刪除元素,可能會使迭代器失效,所以必須保證每次改變容器的操作之後都能正確的重新定位迭代器

當我們向vector中新增新元素時,若此時系統給vector的記憶體已被佔完,則系統或為vector重新分分配一塊記憶體該記憶體會比他新的記憶體需求更大,這樣就可以保證當再有新的元素新增進來時,就不會總是要重新分配新的記憶體了。

c 標準庫型別 vector

一 標準庫型別vector表示物件的集合,物件型別相同,需要 include using namespace std or using std vector 二 定義和初始化vector物件 vectorv1 vectorv2 v1 vectorv2 v1 vectorv3 n,val n個val元...

C 標準庫型別 vector

vector表示物件的集合,其中所有的物件的型別均相同。如果需要使用vector,需要 include using std vector vector name 其中t表示物件的型別,除了基本內建型別外,也可以是string,甚至是vector型別vectorv1 預設初始化 vectorv2 v1...

C 標準庫 vector型別

vector是乙個類似於動態陣列的型別,對於vector的初始化,如下 vectorv1 儲存int資料型別的乙個vector,並且是乙個空容器 vectorv2 vectorv3 5 表示有5個0 vectorv4 5,3 表示有5個3 vectorv5 5,asia 表示有5個字串asia ve...