以底部容器完成所有工作,而具有这种修改某物接口而成为另一种风貌的性质者称为配接器, 因此STL stack queue priority_queue都称为容器配接器。
stack
stack是一种先进后出的数据结构,不允许有遍历行为。STL是以deque作为缺省情况下的stack底部结构。(deque为底部结构并封闭头部开口)。
在容器deque中的命名为push_back() pop_back(),在容器配接器中就简单命名为push() 、pop() , top()的值则是返回deque中的back().
在stack中 templata<class T,class Sequence=deque>,默认为deque,在使用中,也可以改为使用list作为底层容器。
queue
queue是一种先进先出的数据结构,不允许有遍历行为,同样以deque作为默认的底部结构,
在容器deque中的命名为push_back() pop_back(),在容器配接器中就简单命名为push() 、pop()【因为这个我之前好像记乱了 所以强调几次】 queue中使用了front() 和back(),直接调用deque的front()、 back() ,一样可以使用list作为底部结构
priority_queue
priority_queue是一个带有权值观念的queue,其内的元素并非按照被推入的次序排列,而是自动按照元素的权值排列(通常权值以实值表示),权值最高者,排在最前面。因为在缺省情况下priority_queue利用max_heap最大堆完成,后者是一个以vector表现的完全二叉树。priority_queue的所有元素,进出都是有一定的规划,只有queue顶端的元素(权值最高者)才有机会被外界取用,priority_queue不提供遍历功能,也不提供迭代器。