vector底層結構簡介

2021-10-21 19:48:58 字數 543 閱讀 3216

vector簡介:

vector實際上是乙個泛型動態型別順序表,底層資料儲存在一段連續的空間上。

vector優缺:

優:由於其順序結構,它支援隨機訪問,讀取更改效率很高。

缺:順序結構隨機插入刪除時,需要挪動他元素,元素越多效率越低。( 還會使迭代器失效)

vector底層結構:

乙個順序表。

vector迭代器:

容器中內建迭代範圍都在 [ begin() , end() ) 區間內。

vector擴容:

當資料量達到容器邊緣時(end() == 邊界),容器會自行擴容。(開闢一段連續空間,大小一般為原大小的2 / 1.5倍,將資料copy到新空間中,釋放原空間,使用新空間)

函式使用:

與list類似。

C語言資料結構之vector底層實現機制解析

目錄 通過分析 vector 容器的源 不難發現,它就是使用 3 個迭代器 可以理解成指標 來表示的 其中statrt指向vector 容器物件的起始位元組位置 finish指向當前最後乙個元素的末尾位元組 end of指向整個 vector 容器所占用記憶體空間的末尾位元組。如圖 演示了以上這 3...

STL底層原理簡介

stl的sort 演算法,資料量大時採用quick sort,分段遞迴排序。一旦分段後的資料量小於某個閾值,為避免quick sort的遞迴呼叫帶來過大的額外開銷,就改用insertion sort 插入排序 如果遞迴層次過深,也就是說資料量過大,比如說有10億個數,還會改用heap sort。底層...

STL底層原理簡介

stl的sort 演算法,資料量大時採用quick sort,分段遞迴排序。一旦分段後的資料量小於某個閾值,為避免quick sort的遞迴呼叫帶來過大的額外開銷,就改用insertion sort 插入排序 如果遞迴層次過深,也就是說資料量過大,比如說有10億個數,還會改用heap sort。底層...