C++中queue容器的具體使用
一、queue容器
1.1 簡(jiǎn)介
① queue是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),它有兩個(gè)出口。
② 隊(duì)列容器允許一段新增元素,從另一端移除元素。
③ 隊(duì)列中只有對(duì)頭和隊(duì)尾才可以被外界使用,因此隊(duì)列不允許有遍歷行為。
④ 隊(duì)列中進(jìn)數(shù)據(jù)稱為入隊(duì)。
⑤ 隊(duì)列中出數(shù)據(jù)稱為出隊(duì)。
1.2 常用接口
① 功能描述:棧容器常用的對(duì)外接口。
② 構(gòu)造函數(shù):
queue que; //queue采用模板類實(shí)現(xiàn),queue對(duì)象的默認(rèn)構(gòu)造形式 queue(const queue &que); //拷貝構(gòu)造函數(shù)
③ 賦值操作:
queue& operator=(const queue &que); //重載等號(hào)操作符
④ 數(shù)據(jù)存儲(chǔ):
push(elem); //往隊(duì)尾添加元素 pop(); //從對(duì)頭移除第一個(gè)元素 back(); //返回最后一個(gè)元素 front(); //返回第一個(gè)元素
⑤ 大小操作:
empty(); //判斷堆棧是否為空 size(); //返回棧的大小 #include<iostream> using namespace std; #include <queue> #include<string> //隊(duì)列 Queue class Person { public: Person(string name, int age) { this->m_Name = name; this->m_Age = age; } string m_Name; int m_Age; }; void test01() { //創(chuàng)建隊(duì)列 queue<Person>q; //準(zhǔn)備數(shù)據(jù) Person p1("唐僧", 30); Person p2("孫悟空", 1000); Person p3("豬八戒", 900); Person p4("沙僧", 800); //入隊(duì) q.push(p1); q.push(p2); q.push(p3); q.push(p4); cout << "隊(duì)列大小為:" << q.size() << endl; //判斷只要隊(duì)列不為空,查看對(duì)頭,查看隊(duì)尾,出對(duì) while (!q.empty()) { //查看對(duì)頭 cout << "對(duì)頭元素 -- 姓名:" << q.front().m_Name << " 年齡:" << q.front().m_Age << endl; //查看隊(duì)尾 cout << "隊(duì)尾元素 -- 姓名:" << q.back().m_Name << " 年齡:" << q.back().m_Age << endl; //出對(duì) q.pop(); //出隊(duì)是出對(duì)頭元素 } cout << "隊(duì)列大小為:" << q.size() << endl; } int main() { test01(); system("pause"); return 0; }
運(yùn)行結(jié)果:
隊(duì)列大小為:4
對(duì)頭元素 -- 姓名:唐僧 年齡:30
隊(duì)尾元素 -- 姓名:沙僧 年齡:800
對(duì)頭元素 -- 姓名:孫悟空 年齡:1000
隊(duì)尾元素 -- 姓名:沙僧 年齡:800
對(duì)頭元素 -- 姓名:豬八戒 年齡:900
隊(duì)尾元素 -- 姓名:沙僧 年齡:800
對(duì)頭元素 -- 姓名:沙僧 年齡:800
隊(duì)尾元素 -- 姓名:沙僧 年齡:800
隊(duì)列大小為:0
請(qǐng)按任意鍵繼續(xù). . .
到此這篇關(guān)于C++中queue容器的具體使用的文章就介紹到這了,更多相關(guān)C++ queue容器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
iostream與iostream.h的區(qū)別詳細(xì)解析
以下是對(duì)C++中iostream與iostream.h的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-09-09C語言實(shí)現(xiàn)Linux下的socket文件傳輸實(shí)例
這篇文章主要介紹了C語言實(shí)現(xiàn)Linux下的socket文件傳輸?shù)姆椒?較為詳細(xì)的分析了C語言文件Socket文件傳輸客戶端與服務(wù)器端相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-06-06Qt數(shù)據(jù)庫相關(guān)應(yīng)用開發(fā)總結(jié)
這篇文章主要為大家介紹了在Qt數(shù)據(jù)庫應(yīng)用開發(fā)中的一些經(jīng)驗(yàn)總結(jié),以及一些組件的使用介紹。文中的示例代碼講解詳細(xì),需要的可以參考一下2022-02-02C++中函數(shù)的默認(rèn)參數(shù)詳細(xì)解析
在函數(shù)聲明或定義時(shí),直接對(duì)參數(shù)賦值,該參數(shù)就是默認(rèn)參數(shù)。在函數(shù)調(diào)用時(shí),省略部分或全部參數(shù),這時(shí)就會(huì)使用默認(rèn)參數(shù)進(jìn)行代替2013-10-10