三種常用的STL

2021-09-12 12:03:33 字數 845 閱讀 5767

<1>vector容器

vector容器是乙個動態陣列的結構,在記憶體中有乙個指標指向一塊連續的記憶體。類似陣列結構一樣。它的特點支援隨機訪問資料,因為其在記憶體中的單元是連續。如此之外,還可以vector的大小是可以自動增長的。當向乙個vector中繼續存放資料的時候,如果當前的記憶體大小不夠,核心會重新生成乙個是原來兩倍的大小的單元,之後 將資料從原先的單元中拷貝至新建立的單元中,並將原來的單元釋放掉。(但是所謂的釋放單元,僅僅是想原來單元中的資料清空,相應的記憶體單元還是存在的)

優點:支援隨機訪問,所以查詢效率高。

缺點:當向其分非尾插入元素時,因記憶體單元需要移動資料元素,所以插入的效率比較低。

適用場景:適用於物件簡單,變化較小,並且頻繁隨機訪問的場景。

2.list容器

list容器在記憶體中的結構是類似雙向鍊錶結構,每個元素的記憶體單元結構是不連續的,彼此之間通儲存相關的位址進行關聯。由於在記憶體中的單元不是連續的,所以其比支援隨機訪問,不具備操作運算。每乙個節點都有三個域,前驅節點指標域,資料域,後驅節點指標域。

有點:因為只類似鍊錶結構在記憶體中,所以任意位置刪除節點和插入節點都是高效的。

缺點:因為記憶體單元不連續,所以不支援隨機訪問操作。

適用場景:物件變化大,並且物件數量變化頻繁,刪除和插入操作的情況。

3.map容器

map容器是乙個關聯式容器。在其內部元素的儲存結構是通過key-value結構進行儲存,並且其key是唯一存在的。支援那種一對一的資料處理過程。其底層是通過rbtree來實現的,利用紅黑樹的一種嚴格的平衡二叉樹結構實現。在其實現過程,自動建立key-value的插入資料的過程。並且支援快速的查詢,通過鍵值可進行快速的查詢對應的資料元素。以及快速刪除操作。

原文: 

STL三種標準容器

順序性容器 vector 從後面快速的插入與刪除,直接訪問任何元素 deque 從前面或後面快速的插入與刪除,直接訪問任何元素 list 雙鏈表,從任何地方快速的插入與刪除 關聯容器 set 快速查詢,不允許重複值 multiset 快速查詢,允許重複值 map 一對一對映,基於關鍵字快速查詢,不允...

三種常用的迴圈

迴圈 一次一次的重複執行相同的 特點 1 迴圈條件規定迴圈的執行次數 如果不規定次數就會無限迴圈 2 迴圈的操作 要執行的相同或顯示的語句 迴圈分為3種,分別是while迴圈,do while 迴圈,for迴圈 迴圈的三要素 1.迴圈變數 2.迴圈條件 滿足時才執行迴圈體 3.迴圈變數的變化 變化是...

常用的三種演算法

1.氣泡排序法 氣泡排序的基本思路是對比相鄰的元素值,如果滿足條件就交換元素值,把較小的元素移到陣列前面,把大的元素移到陣列後面,這樣較小的元素就像氣泡一樣上公升到頂部。冒泡演算法由雙層迴圈實現,其中外層迴圈用於控制迴圈次數,一般為要排序的陣列長度減1次,因為最後一次迴圈只剩下乙個陣列元素,所以不需...