C 高階 STL原始碼之順序容器介面卡

2021-10-08 20:50:07 字數 2698 閱讀 1237

容器介面卡是一種利用存在的容器型別採用另一種不同的抽象型別的工作方式實現。

stack是一種先進後出的資料結構,它只有乙個出口;stack允許新增元素、移除元素、取得最頂端的元素;但是除了頂端外不可以訪問其他元素;stack沒有迭代器。

stack在預設的情況下是以deque作為底部容器來完成所有的工作,元素的操作只有push 和 pop 兩個介面。

stack也可以使用vector 、 list 、deque 作為底部容器。

template>

class stack

bool

empty() const

size_type

size() const

reference

top()

const_reference

top() const

void

push(const value_type& __x)

void

pop()

};

queue是一種先進先出的資料結構,他有兩個介面;queue允許新增元素、移除元素、從最低端加入元素、從最頂端取得元素;queue也沒有迭代器。

queue預設的情況下以deque作為底部容器實現;

queue可以使用 deque 、 list 作為底部實現容器。

};priority_queue是乙個擁有權值觀念的queue,它允許加入新的元素、移除舊元素、審視元素等功能;

priority_queue也是一種queue,它只允許在底部加入元素,在頂部取出元素;

priority_queue預設的情況下是以vector作為底部容器實現;

priority_queue 沒有迭代器。

stl容器之順序容器

stl容器分為順序容器和關聯容器 其中順序容器最常用的由vector,list,queue 1.vector vector 向量容器,可以看作變長陣列,長度可根據需要自行變化。使用的標頭檔案 include 定義方式 vector陣列名 vectorar 訪問容器內資料的方式和普通陣列相同,可以用a...

C 高階 STL原始碼之set與multiset

set的特性是,所有元素都會根據元素的鍵值自動被排序,set元素的鍵值就是實值,實值就是鍵值,set不允許兩個元素有相同的鍵值。set的元素值不可以通過迭代器來改變,因為set元素就是其鍵值,關係到set元素的排列規則 如果任何改變set元素值,會嚴重破壞set組織。set是以rb tree作為底層...

STL原始碼 map set與其他順序容器的一些比較

map的操作參考文章 c primer 學習筆記 35 stl實踐與分析 9 map型別 上 c primer 學習筆記 36 stl實踐與分析 10 map型別 下 map的特性 所有元素會按照元素的鍵值自動排序。map所有元素都是pair,第乙個元素視為鍵值,第二個元素視為實值 map不允許兩個...