
系列文章目錄
文章目錄
- 系列文章目錄
- 前言
- 一、queue的介紹和使用
- 1.queue的介紹
- 2.queue的使用
- 二、queue的模擬實作
- 總結
前言
一、queue的介紹和使用
1.queue的介紹
queue的檔案
- 翻譯:
- 佇列是一種容器配接器,專門用于在FIFO背景關系(先進先出)中操作,其中從容器一端插入元素,另一端提取元素,
- 佇列作為容器配接器實作,容器配接器即將特定容器類封裝作為其底層容器類,queue提供一組特定的成員函式來訪問其元素,元素從隊尾入佇列,從隊頭出佇列,
- 底層容器可以是標準容器類模板之一,也可以是其他專門設計的容器類,該底層容器應至少支持以下操作:

- 標準容器類deque和list滿足了這些要求,默認情況下,如果沒有為queue實體化指定容器類,則使用標準容器deque,

2.queue的使用

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<queue>
using namespace std;
int main()
{
queue<int> q1;
q1.push(1);
q1.push(2);
q1.push(3);
q1.push(4);
cout << q1.front() << endl;
cout << q1.back() << endl;
cout << q1.size() << endl;
while (!q1.empty())
{
cout << q1.front() << " ";
q1.pop();
}
cout << endl;
cout << q1.size() << endl;
cout << q1.empty() << endl;
return 0;
}

二、queue的模擬實作
因為queue的介面中存在頭刪和尾插,因此使用vector來封裝效率太低,故可以借助list來模擬實作queue,具體如下:
#include<iostream>
#include<vector>
#include<list>
namespace yyw
{
template<class T,class Container>
class queue //隊尾入,隊頭出
{
public:
void push(const T& x)
{
_con.push_back(x);
}
void pop()
{
_con.pop_front();
}
T& front()
{
return _con.front();
}
T& back()
{
return _con.back();
}
size_t size()
{
return _con.size();
}
bool empty()
{
return _con.empty();
}
private:
Container _con;
};
void testqueue1()
{
queue<int, std::list<int>> q1;
q1.push(1);
q1.push(2);
q1.push(3);
q1.push(4);
std::cout << q1.size() << std::endl;
std::cout << q1.empty() << std::endl;
while (!q1.empty())
{
std::cout << q1.front() << " ";
q1.pop();
}
std::cout << std::endl;
}
}

總結
以上就是今天要講的內容,本文僅僅簡單介紹了queue的使用和模擬實作,而queue提供了大量能使我們快速便捷地處理資料的函式和方法,非常的便捷所以我們務必掌握,另外如果上述有任何問題,請懂哥指教,不過沒關系,主要是自己能堅持,更希望有一起學習的同學可以幫我指正,但是如果可以請溫柔一點跟我講,愛與和平是永遠的主題,愛各位了,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/289349.html
標籤:其他
上一篇:mybatis的詳細執行流程
下一篇:漫畫:世界的本源是什么?
