stack与queue、priority_queue
stack与queue、priority_queue是容器适配器,容器适配器的意思就是,以正常的容器作为底层的实现,然后加上以下限制之后就构成了容器适配器的底层实现
1.stack:
stack的底层默认的容器是deque,只使用了deque的push_back与pop_back两种插入与跳出,当然还有back(),其实底层的容器并不固定,就像vector,list都可以作为stack的底层,但是默认是deque
2.queue
queue的底层默认容器任然是deque,只使用了deque的push_back与pop_front,与stack不同的是,queue的底层不能使用vector,可以使用list,因为在vector中不存在pop_front,对于所有的适配器而言,不仅可以底层使用这些已经存在的容器,也可以使用自己实现的容器,只要自己的容器包含对应适配器所需要的函数就行
3.priority_queue
priority_queue:优先队列,实现与堆非常像,默认的容器是vector,在priority_queue定义对象的过程中,<>中的元素不仅有有类型名,还包括了底层的容器,stack与queue就是这样,priority_queue比他们多的部分就是第三个参数,第三个参数代表的是优先队列是大根堆还是小根堆,less是大根堆,greater是小根堆,这些被称作仿函数
仿函数:可以当成函数使用的类,方法是重载函数调用运算符("()"),这个自己也可以实现