實現序列式容器 vector

2021-09-24 00:06:43 字數 1058 閱讀 2081

概述:

在stl諸多容器中vector一定是使用率最高的了,它使用和資料結果上與array相類似,兩者唯一差別在於:array是靜態空間,而vector是可變空間。因此通常將vector看作可變陣列。

由於vector方法較多,在主要此討論實現vector中要注意的幾個點:

對於vector而言維護的是一連續線性空間,所以不論什麼型別的元素都可以用普通指標來指代,而且迭代器所要執行的操作指標都可以實現。

所以說vector中的迭代器實質是t型別的指標。 

int main()

} return 0;

}

在vs2013下執行的結果:

在gcc下執行結果:

通過執行結果來看vs下是以1.5倍方式擴充,gcc下是以2倍方式擴充。

對於插入操作 insert(position, n, x);// position插入起始位置,n插入個數, x插入資料

當備用空間  > 新增元素個數:

1. 新增元素個數 <= 插入點之後元素個數

2. 新增元素個數 > 插入點之後元素個數

備用空間

vector實現**: 

STL 序列式容器 vector詳解

vector 的資料安排以及操作方式,與 array 非常相似。兩者唯一的差別在於對空間運用的靈活性。array 是靜態空間,一旦配置了就不能改變。vector 是動態空間,隨著元素的加入,它的內部機制會自行擴充空間以容納新元素。一下內容主要針對 vector 基本的資料結構以及常用的方法進行介紹。...

STL序列式容器之vector

序列式容器 序列式容器 可序列集群,其中的元素都可序,但未必有序。vector概述 vector的資料安排以及操作方式,與array非常相似。兩者的唯一差別在於空間的運用的靈話性,array 是靜態空間,一旦配置了就不能改變 要換個大 或小 一點的房子,可以,一切瑣細得由客戶端自己來 首先配置一塊新...

c 序列式容器(一) Vector

vector維護的是乙個連續的線性空間,有三個比較重要的指標,start指向目前使用空間的頭,finish指向目前使用空間的尾,end of storage指向目前可用空間的尾。增加新元素的時候,如果備用空間不夠,會將容量擴容到兩倍。會經歷 重新配置,元素移動,釋放原空間 等過程,因此,擴容的時候效...