Vector的用法(STL基本容器)

2021-09-11 17:38:08 字數 1479 閱讀 9346

vector

vector是陣列的一種類表示,它提供了自動記憶體管理功能,可以動態地改變vector物件的長度,並隨著元素的新增和刪除而增大縮小,

它提供了對元素的隨機訪問,在尾部新增和刪除元素的時間是固定的,但在頭部或中間插入和刪除元素的複雜度為線性時間。除序列外,vector還是可反轉容器

vector存在於標頭檔案vector中

#include < vector>

初始化

如果vector的元素型別是int,預設初始化為0;如果vector元素型別為string,則預設初始化為空字串。

vector v1;

vector v2;

vector v3;

vector; //注意空格。這裡相當於二維陣列int a[n][n]巢狀vector;

vector v5 = ; //c11列表初始化

vector v6 = ;

vector v7(5, -1); //初始化為-1,-1,-1,-1,-1。第乙個引數是數目,第二個引數是要初始化的值

vector v8(3, 「hi」);

vector v9(10); //預設初始化為0

vector v10(4); //預設初始化為空字串

向vector寫入資料(注意寫入位置對時間複雜度產生的影響)

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

vector其他成員函式操作

訪問和操作vector中的每個元素(注意vector是有序容器,頻繁增刪將導致嚴重的效能問題)

for (int i = 0; i < vec.size(); i++)

vector最常用的增刪操作

注意:

雖然vertor物件可以動態增長,但是也或有一點***:已知的乙個限制就是不能再範圍for迴圈中向vector物件新增元素。另外乙個限制就是任何一種可能改變vector物件容量的操作,不如push_back,都會使該迭代器失效。另外,為容器申請記憶體空間的時候會為其額外的多申請一些空間。c++ primer中專門有說明

總而言之就是:但凡使用了迭代器的迴圈體,都不要向迭代器所屬的容器新增元素!

c++中push_back和insert兩個有什麼區別?

顧名思義push_back把元素插入容器末尾,insert把元素插入任何你指定的位置。不過push_back速度一般比insert快。如果能用push_back盡量先用push_back。

STL中vector的基本用法

一 vector與陣列的異同 二 vector的基本用法 2.1 建立一維vector變數 首先加入標頭檔案 include includevector 資料型別 變數名稱 對一維vector變數進行初始化,方法比較多,這裡使用已建立的陣列對vector變數進行初始化 int num vectora...

STL容器 Vector用法

標頭檔案 include 建立 vectorv 尾部插入元素 v.push back a 在第i 1個元素前面插入a v.insert v,begin i 刪除第i 1個元素 v.erase v,begin i 刪除區間 i,j 的元素 v.erase v.begin i,v.end j 下標訪問第...

vector的基本用法

vector是c 標準模板庫中的部分內容,它是乙個多功能的,能夠操作多種資料結構和演算法的模板類和函式庫。vector之所以被認為是乙個容器,是因為它能夠像容器一樣存放各種型別的物件,簡單地說,vector是乙個能夠存放任意型別的動態陣列,能夠增加和壓縮資料。標頭檔案 include 宣告 乙個in...