以底部容器完成所有工作,而具有這種修改某物介面而成為另一種風貌的性質者稱為配接器, 因此stl stack queue priority_queue都稱為容器配接器。
stack是一種先進後出的資料結構,不允許有遍歷行為。stl是以deque作為預設情況下的stack底部結構。(deque為底部結構並封閉頭部開口)。
在容器deque中的命名為push_back() pop_back(),在容器配接器中就簡單命名為push() 、pop() , top()的值則是返回deque中的back().
在stack中 templata,預設為deque,在使用中,也可以改為使用list作為底層容器。
queue是一種先進先出的資料結構,不允許有遍歷行為,同樣以deque作為預設的底部結構,
在容器deque中的命名為push_back() pop_back(),在容器配接器中就簡單命名為push() 、pop()【因為這個我之前好像記亂了 所以強調幾次】 queue中使用了front() 和back(),直接呼叫deque的front()、 back() ,一樣可以使用list作為底部結構
priority_queue是乙個帶有權值觀念的queue,其內的元素並非按照被推入的次序排列,而是自動按照元素的權值排列(通常權值以實值表示),權值最高者,排在最前面。因為在預設情況下priority_queue利用max_heap最大堆完成,後者是乙個以vector表現的完全二叉樹。priority_queue的所有元素,進出都是有一定的規劃,只有queue頂端的元素(權值最高者)才有機會被外界取用,priority_queue不提供遍歷功能,也不提供迭代器。
STL之配接器
adapter 將乙個class的介面轉換為另乙個class的介面。應用於仿函式,functor adapters,價值在於通過它們直接的繫結,組合,修飾能力,幾乎可以無限制地創造出各種可能的表示式。配接操作包括繫結 bind 否定 negate 組合 compose 以及對一般函式或成員函式的修飾...
容器配接器 stacks
stack 堆疊 的簡單使用 include include using namespace std int main if st st1 cout st.size endl 棧中元素的個數 cout st.top endl 返回棧頂元素 st.pop 出棧 st.top 12 改變棧頂元素值 st...
STL學習筆記(迭代器配接器)
reverse 逆向 迭代器 reverse迭代器是一種配接器。重新定義遞增運算和遞減運算。使其行為正好倒置。如果你使用這類迭代器,演算法將以逆向次序處理元素。所有標準容器都允許使用reverse迭代器來遍歷元素。下面是個例子 1 include 2 include 3 include 4 usin...