? ? ? 在C++標準庫中,隊列(queue)是一種容器適配器,它以先進先出的方式組織數據,其中從容器一端插入元素,另一端取出元素。
queue的使用
queue的構造函數
queue的成員函數
empty:檢測隊列是否為空
size:返回隊列中有效元素的個數
front:返回隊頭元素的引用
back:返回隊尾元素的引用
push_back:在隊列尾部入隊列
pop_front:在隊列頭部出隊列
queue的模擬實現
template<class T, class Container = list<T>>
class queue {
public:
?? ?void push(const T& x) {
?? ??? ?_con.push_back(x);
?? ?}
?? ?void pop() {
?? ??? ?_con.pop_front();
?? ?}
?? ?const T& front() {
?? ??? ?return _con.front();
?? ?}
?? ?const T& back() {
?? ??? ?return _con.back();
?? ?}
?? ?size_t size() {
?? ??? ?return _con.size();
?? ?}
?? ?bool empty() {
?? ??? ?return _con.empty();
?? ?}
private:
?? ?Container _con;
};
成員函數的模擬實現
push(const T& x) 函數用于將元素 x 添加到隊列的末尾,它實際上調用了底層容器的 push_back() 方法。
pop() 函數用于移除隊列頭部的元素,它實際上調用了底層容器的 pop_front() 方法。
back() 函數返回隊列中的最后一個元素的引用,它可以用于訪問隊列的末尾元素。
front() 函數返回隊列中的第一個元素的引用,用于訪問隊列的頭部元素。
empty() 函數用于檢查隊列是否為空,它實際上調用了底層容器的 empty() 方法。
size() 函數用于獲取隊列中元素的數量,它實際上調用了底層容器的 size() 方法。
私有成員 _con 是底層容器對象,用于存儲隊列的元素。
使用這個模擬隊列類,你可以選擇不同的底層容器類型(默認為 std::deque),并調用類的方法來模擬隊列的基本操作,如添加元素、移除元素、訪問元素、判斷是否為空等。這種實現方式允許你通過模板來適應不同的數據類型和底層容器,從而更加靈活地使用隊列。