隊列(queue)
我們把queue叫作容器適配器,因為它本身是通過deque來實現的.相當於一個精簡版,功能更弱的deque.
主要有如下成員函數
empty() 如果隊列為空白返回真
pop() 刪除頂部元素
push() 加入一個元素
size() 返回隊列中擁有的元素個數
back() 返回隊列尾部元素
front()返回隊列頭部元素.
我們知道隊列的特點就是先進先出,進的時候就是push嘛,在屁股後面添加元素,出嘛就是pop刪除頭部的元素,
當然了一般刪除之前會先通過front()擷取最前面那個元素.
樣本:
#include<queue>
using namespace std;
queue<int> qu;
bool isEmpty = qu.empty(); //此時為空白返回true
qu.push(11);
qu.push(22);
int head = qu.front(); //11
int end = qu.back(); //22
qu.pop();//刪除頭部元素11
優先隊列(priority_queue)
priority_queue也是適配器容器,它的通過vector實現的.它本質上是一個堆(heap).
它也有入隊出隊.但是不是先入先出.而是優先順序最大的先出.priority_queue預設是大堆
主要成員函數
empty() 如果隊列為空白返回真
pop() 刪除對頂元素
push() 加入一個元素
size() 返回優先隊列中擁有的元素個數
top() 返回優先隊列對頂元素
在預設的優先隊列中,優先順序高的先出隊
使用樣本:
#include <queue>
using namespace std;
priority_queue<int> qq;
qq.push(2);
qq.push(5);
qq.push(3);
qq.push(4);
while(! qq.empty())
{
cout<<qq.top()<<endl; //列印的結果是5 4 3 2 ,從大到小的順序.
qq.pop(); //刪除列隊頭部元素
}