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。底層...