STL學習筆記
序列式容器
array 連續的儲存空間 且大小固定
vector 連續的儲存空間 起始位置固定 動態向後擴容 每次增長的大小為2倍增長
動態增長的過程中 需要重新找到空間 需要轉移元素
deque 雙向 分段連續空間 每次新增時擴充一個buffer
內部可以實現佇列 和 棧
list 非連續的儲存空間 雙向連結串列
關聯式容器
set key和value 是一樣的 key就是value value就是key
map 節點為鍵值對
內部的實現都為紅黑樹(高度平衡的二叉樹)
unordered 內部為hashtable
相關推薦
STL學習筆記— —無序容器(Unordered Container)
ring 最大 布局 size fad oca rgs template max 簡單介紹 在頭文件<unordered_set>和<unordered_map> 中定義 namespace std { templa
STL學習筆記之佇列queue
<queue> 只能訪問queue<T>容器介面卡的第一個和最後一個元素。只能在容器的末尾新增新元素,只能從頭部移除元素。FIFO(先進先出) 1.初始化 需要標頭檔案<queue> queue<int>que;
C++|STL學習筆記-對STL中關聯容器map的進一步認識
關聯容器map key + value 的值 關聯容器 = 有序容器(紅黑樹) + 無序容器(散列表) + hash_map 有序容器中: map的鍵值是不允許重複的 multimap的鍵值是允許重複的 set是一個集合,鍵值=實值,就是隻包含一個值,既是鍵值也是實值,不允許重複 mul
C++|STL學習筆記-map的基本操作(插入,刪除,遍歷,大到小輸出)【仿大佬寫法】
首先的程式碼是插入,刪除,遍歷 執行截圖如下: 原始碼如下: #include <map> #include <iostream> #include <algorithm> using namespace std; typedef pair
STL學習筆記-模板知識
基礎知識 泛化 template<typename T> class Test {}; 特化 template<> Test<int> {}; 偏特化 個數偏特化 template<class T1, clas
STL學習筆記
容器的結構 序列式容器 array 連續的儲存空間 且大小固定 vector 連續的儲存空間 起始位置固定 動態向後擴容 每次增長的大小為2倍增長 動態增長的過程中 需要重新找到空間 需要轉移元素 deque 雙向 分段連續空間 每次新增時擴充一
STL學習筆記(1)空間配置器 allocator
1 簡述 STL其他元件都是存放在空間配置器配置的空間中,此處空間可以是記憶體,也可以是磁碟或其他輔助儲存介質。 allocator負責記憶體的分配和釋放,以及負責物件的構造和析構,兩個操作時分開的。 每個容器都已經制定了預設的空間配置器
(未完成)STL學習筆記(3)序列式容器 (Sequence Containers)
1. vector vector與陣列array十分相似,但array是靜態空間,而vector是動態空間,可以通過內部機制自行擴充空間,具有很好的靈活性。 其實現的關鍵在於對大小的控制和重新配置時的資料移動效率。 vector的型別定義如下: templat
C++|STL學習筆記-map的屬性(大小以及是否存在)
目錄 1.size()的用法 map的property map屬性 1.沒有容量; 2.得到元素的個數size() 這裡給出呼叫他size()的例子,原始碼如下: /*****
STL學習筆記——序列式容器(一級容器)
序列式容器(線性結構,儲存了元素操作時的邏輯順序) array//C++內建 vector heap//以演算法形式呈現(***_heap) priority_queue list slist deque stack//介面卡 q
STL學習筆記——空間配置器
一、STL基本概念1.基本元件 容器(Container)、演算法(Algorithm)、迭代器(Iterator)、仿函式(Functor)、容器介面卡(Adapter)、空間配置器(Allocator) 2.元件關係 容器通過空間配置器獲取資料儲存空間;演算法通
STL學習筆記— —容器array
簡介 array在標頭檔案<array> 中定義 namespace std { template<class T, size_t N> class array; } array是固定元素個數的容器,與相應C
STL學習筆記——關聯式容器(二級容器)
1.RB-tree(二叉平衡搜尋樹,有自動排序功能)2.set 1)所有的元素都會根據元素的鍵值自動被排序(預設升序),set元素的鍵值就是實值,set不允許兩個元素有相同的鍵值; 2)set的迭代器為只讀迭代器,set不允許通過迭代器修改元素值,鍵值無法被修改; 3)由於set底層由
c++ STL 學習筆記(map )
關於map 在STL的標頭檔案中<map>中定義了模版類map和multimap,用有序二叉樹表儲存型別為 pair<const Key, T>的元素對序列。序列中的元素以const Key部分作為標識,map中所有元素的Key 值必須是唯一的,multimap則
c++ STL 學習筆記(pair 和 set)
STL pair (1)pair 的定義 標頭檔案 <utility> STL的標頭檔案中描述了一個看上去非常簡單的模版類pair,用來表示一個二元組或元素對,並提供了按照字典序對元素對進行大小比較運算子模版函式。 定義一個pair物件表示一個平面座標點: 例:
STL學習筆記-multimap的基本使用
multimap: 操作函式跟map都一樣 區別: 1.允許鍵值重複; 2.計數 count() 3.find函式返回第一個匹配的元素,沒找到返回最後一個 如下例子: 執行截圖如下:
STL學習筆記之容器--multiset
與 set 集合容器一樣, multiset 多重容器也使用紅黑樹組織元素資料,只是 multiset 容器允許將重複的元素鍵值插入,而 set 容器則不允許。multiset 容器實現了 Sorted Associativate Container 、Simple Ass
STL學習筆記--4、序列式容器之list
1、概述 list:地址不連續的空間。每次插入或刪除一個元素,就配置或釋放一個元素空間。對於任意位置的元素插入或刪除,list永遠是常數時間。 2、list節點 list本身和list節點是不同的; template <class T>
STL學習筆記--4、序列式容器之vector
常見的資料結構:array陣列,list連結串列,tree樹,stack棧,queue佇列,hash table散列表,set集合,map對映…… 根據資料在容器中的排列分為:序列式sequence和關聯式associative。 序列式容器之vector
STL學習筆記之使用reserve來避免不必要的重新分配
關於STL容器,只要你不超過它們的最大大小,它們就可以自動增長以滿足你的要求。對於vector和string,只要需要更多的空間,就可以用realloc等價思想來增長。這個操作有四個部分。 1. 分配新的記憶體塊,在大部分實現中,vector和string的容量每次