c++中STL庫隊(duì)列詳細(xì)介紹
1.queue單向隊(duì)列(先進(jìn)先出,只能從尾端加元素,從頭刪元素)
? ? ? ? 使用方式:在前面加上文件名‘#include<queue>',再進(jìn)行聲明'queue<int>m;''其中'<>‘里面是數(shù)組的類型,‘m'是數(shù)組的名字。
? ? ? ? 操作:
1.q.push()//入隊(duì)
2.q.pop()//讓隊(duì)首出隊(duì)
3.q.front()//獲得隊(duì)首元素
4.q.back()//獲得隊(duì)尾元素
? ? ? ? 5.q.empty() 隊(duì)列是否為空
6.q.size() 返回隊(duì)列內(nèi)元素個(gè)數(shù)?
#include<iostream>
#include<queue>
using namespace std;
int main() {
int i;
queue<int>m;
for ( i = 0;i < 5;i++) {
m.push(i);//讓元素入隊(duì)
}
cout << m.size() << endl;//統(tǒng)計(jì)m中元素的個(gè)數(shù)
for (i = 0;i < 5;i++) {
cout<<m.front();//獲得隊(duì)首元素
//m.pop();//彈出隊(duì)首元素
}
return 0;
}
上面代碼運(yùn)行后由于沒有講隊(duì)首元素給彈出,輸出的都是是一樣的,因此為了能讓m中的每一個(gè)元素輸出,我們應(yīng)該及時(shí)的將隊(duì)首元素給彈出,再每次輸出第一個(gè)元素的時(shí)候及時(shí)的將它給彈出。
#include<iostream>
#include<queue>
using namespace std;
int main() {
int i;
queue<int>m;
for ( i = 0;i < 5;i++) {
m.push(i);//讓元素入隊(duì)
}
cout << m.size() << endl;//統(tǒng)計(jì)m中元素的個(gè)數(shù)
for (i = 0;i < 5;i++) {
cout<<m.front();//獲得隊(duì)首元素
m.pop();//彈出隊(duì)首元素
}
return 0;
}
這樣我們就能將m中的所有元素給輸出。
2.deque雙向列隊(duì)(即能從頭部加入元素又能從尾部加入元素,元素進(jìn)入按抽屜原理,最后進(jìn)最先出)
?????????使用方式:在前面加上文件名‘#include<deque>',再進(jìn)行聲明‘deque<int>m;
????????操作:
1.q.push_back()//尾部插入
2.q.push_front()//頭部插入
3.q.pop_front()//頭部刪除
4.q.pop_back()//尾部刪除
5.q.front()//返回第一個(gè)元素
6.q.back()//返回最后一個(gè)元素
#include<iostream>
#include<deque>
using namespace std;
int main() {
int i;
deque<int>m;
for ( i = 0;i < 5;i++) {
m.push_front(i);//讓元素從頭部入隊(duì)
}
cout << m.size() << endl;//統(tǒng)計(jì)m中元素的個(gè)數(shù)
for (i = 0;i < 5;i++) {
cout<<m.front();//獲得隊(duì)首元素
m.pop_front();//從頭部彈出隊(duì)首元素
}
return 0;
}
?3.vector(長度可變的數(shù)組)
? ? ? ? 使用方法:在前面加上文件名‘#include<vector>',再進(jìn)行聲明‘vector<int>m;'。
? ? ? ? 操作
? ? ? ? 1.m.push_back()//輸入元素
2.m.pop_back()//刪除最后一個(gè)元素
3.m.size()//得到vector的大小
4.m.clear()//清空容器中所有數(shù)據(jù)
5.m.empty()//判斷vector是否為空
6.m.front()//引用第一個(gè)元素
7.m.back()//引用最后一個(gè)元素
#include<iostream>
#include<vector>
using namespace std;
int main() {
int i;
vector<int>m;
for ( i = 0;i < 5;i++) {
m.push_back(i);//讓元素入隊(duì)
}
cout << m.size() << endl;//得到vector容器的大小
for (i = 0;i < 5;i++) {
cout << m.back();//獲得尾部元素
m.pop_back();//從尾部彈出元素
}
cout << endl;
for (i = 0;i < 5;i++) {
m.push_back(i);
}
cout << m.size() << endl;
m.clear();//清除m中所有元素
cout << m.size() << endl;
return 0;
}
到此這篇關(guān)于c++中STL庫隊(duì)列詳細(xì)介紹的文章就介紹到這了,更多相關(guān)c++ STL庫隊(duì)列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Qt5開發(fā)視頻播放器的項(xiàng)目實(shí)踐
Qt對(duì)音視頻的播放和控制、相機(jī)拍攝、收音機(jī)等多媒體應(yīng)用提供了強(qiáng)大的支持,本文主要介紹了Qt5開發(fā)視頻播放器,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
C語言實(shí)現(xiàn)簡易通訊錄(靜態(tài)版本)的代碼分享
這篇文章主要為大家詳細(xì)介紹了如何錄音C語言實(shí)現(xiàn)一個(gè)簡易的通訊錄(靜態(tài)版本),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-10-10
floyd算法實(shí)現(xiàn)思路及實(shí)例代碼
這篇文章主要介紹了floyd算法實(shí)現(xiàn)思路及實(shí)例代碼,有需要的朋友可以參考一下2014-01-01
C++?ncnn模型驗(yàn)證精度實(shí)現(xiàn)代碼
這篇文章主要介紹了C++?ncnn模型驗(yàn)證精度實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-02-02
C語言標(biāo)準(zhǔn)時(shí)間與秒單位相互轉(zhuǎn)換
這篇文章主要介紹了C語言標(biāo)準(zhǔn)時(shí)間與秒單位相互轉(zhuǎn)換,秒單位與標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換方式,這份代碼一般用在嵌入式單片機(jī)里比較多,比如:設(shè)置RTC時(shí)鐘的時(shí)間,從RTC里讀取秒單位時(shí)間后,需要轉(zhuǎn)換成標(biāo)準(zhǔn)時(shí)間顯示。下文分享需要的小伙伴可以參考一下2022-05-05

