---
# System prepended metadata

title: 'std::queue'

---

# `std::queue`
## **```queue``` 的概念**
想像現實生活中的排隊，要進入隊伍會從後方插入，要離開隊伍會從前方離開
```queue``` 就是一種資料結構，從<font color = "F00000">前面</font>取值，從<font color = "F00000">後面</font>放值，中間資料==不可直接取用==
## **宣告**
```cpp
#include <queue> //要引用queue標頭檔
queue<資料型態> 變數名稱;
```
## **基礎語法**
```cpp
push(放入值) //從後插入值
emplace(放入值) //自動導向型別建構子
pop() //刪除首項(最前)
front() //取得首項之值
back() //取得末項之值
size() //回傳目前長度
empty() //如果為空回傳1 反之回傳0
```

## 迴圈遍歷：
```cpp
queue<int> q;
while(!q.empty()){ //run until empty
    cout << q.front() << ' ';
    q.pop(); //pop first value
}
```
{%hackmd 2HMJrJwgRB-0mjZ5lGdh-g %}