STL 之vector向量容器

2021-05-21 21:17:52 字數 1562 閱讀 3116

vector向量容器

作為陣列的乙個泛化推廣的vector容器,不僅可以陣列一樣的元素隨機訪問,還可以在容器的尾端插入新元素

vector是乙個簡單,高效的容器,在尾端插入和刪除元素,演算法時間複雜度為o(1)常數階,其他元素的插入和刪除為o(n)的線性階,其中n為容器的元素個數,vector具有自動的記憶體管理功能,對於元素的插入和刪除,可動態的調整所占用的記憶體空間。

vector技術原理

vector容器是乙個線性結構,用3個指標存放向量的起始位元組位置,當前最後乙個向量元素的末尾位元組和整個容器所占用的記憶體空間的末尾位元組,3個指標變數分別為m_start,m_finish和m_end_of_storage

vector應用基礎

建立vector物件

1 vectorv;

2 vectorv(10);  //建立乙個具有10個元素的vector物件,每個元素預設值為0.0

3 vectorv(10,9.3);   //建立乙個具有10個元素的vector物件,每個元素預設值為9.3

4 vectorv1(5,'k');

vectorv2(v1);

初始化賦值

vector提供push_back函式,常用來進行vector容器的初始化,push_back函式在容器的尾端插入新元素

元素的遍歷訪問

vector的元素可採用陣列或者迭代器的訪問進行遍歷訪問

#include

#include

int main()

using namespace std;

vectorv;

v.push_back(20);

v.push_back(26);

v.push_back(39);

for(int i=0;icout<<"v[" #include

#include

int main()

using namespace std;

vectorv;

v.push_back(20);

v.push_back(26);

v.push_back(39);

vector::iterator i,iend;

iend = v.end();

int j;

for(i = v.begin(),j = 0;i != iend;i++,j++)

cout<<"v[" vector提供了begin()和end()函式用於獲取首元素的迭代器和最後乙個元素的下一位置的迭代器

元素的插入

同於在vector容器尾部新增元素的push_back函式,insert函式可在函式的任意位置插入元素,由於插入時先將插入位置後的元素移位,以空出乙個位置進行插入,因此,insert函式的執行較push_back函式稍為耗時

#include

#include

int main

return 0; }

元素的刪除

......待續

STL(六)Vector向量容器

作為陣列的乙個泛化推廣的vector容器,vector是一種簡單 高效的容器。在尾端插入和刪除元素,演算法時間複雜度為o 1 常數階,其他元素的插入和刪除為o n 線性階,其中n為vector容器的元素個數。vector具有自動的記憶體管理功能,對於元素的插入和刪除,可動態調整所占用的記憶體空間。一...

STL學習之 vector向量容器使用詳解

vector是c 標準模板庫中的乙個重要組成部分,vector是乙個向量容器,是一種動態陣列。它能夠存放各種型別的物件,簡單地說,vector是乙個能夠存放任意型別的動態陣列,可以動態改變大小。支援快速隨機訪問。注意 vector將元素儲存在連續的記憶體空間中,由於元素是連續儲存的,由元素的下標來計...

STL系列之vector 容器

標頭檔案 使用vector,必須包含標頭檔案 includevector v vector v 3,1 初始化放入3個1 vector vpointer vector vpointer st test可以是使用者定義的任意結構體或類等資料型別int ponit new int for int i 0...