(1)STL中stack的實現是以deque爲底層容器而進行修改實現的,所以,stack通常稱爲容器適配器(adapter)(修改某物接口,造成另外一種風貌的模式爲適配器模式)。除了deque做爲底層容器外,list也能夠做爲stack的底層實現容器,用法爲stack<int,list<int>> istack; (2)stack沒有迭代器(只能知足先進後出的性質,因此不須要迭代器)算法
同stack數組
(1)隱式表示法:用數組表示樹結構,如徹底二叉樹能夠由數組來表示 (2)heap實質是一種知足某種限制條件的徹底二叉樹,分爲大根堆和小根堆兩種。 (3)heap的實現主要是用vector(用於二叉樹的隱式表示)和一組heap算法來實現 (4)STL中的heap是以數組形式的max-heap實現的 (5)max-heap的性質(以數組標示):數組第一個元素預留出來不用,數據從i下標開始存儲,則知足a[i] > a[2i] && a[i] > a[2i+1]spa
(1)push_heap算法:插入數組底部,而後循環和父節點比較,調整max-heap結構。 (2)pop-heap算法
blog
(3)sort-heap算法(堆排序)、make-heap算法 圖省略,參考堆排序思路。排序
(1)定義及操做:優先隊列是一個擁有權值觀念的queue,容許像queue同樣,即只容許低端加入,頂端取出操做;因爲其帶有權值,因此裏面的元素自動以權值大小進行排序,權值高的,排在前面。 (2)priority_queue的底層容器爲vector+heap操做(默認狀況),也能夠說是以max-heap爲底層容器接口