C++ stack與queue使用方法詳細(xì)講解
Stack的介紹和使用
stack是一種容器適配器,專門用在具有后進(jìn)先出操作的上下文環(huán)境中,其刪除只能從容器的一端進(jìn)行元素的插入與提取操作。 stack是作為容器適配器被實現(xiàn)的,容器適配器即是對特定類封裝作為其底層的容器,并提供一組特定的成員函數(shù)來訪問其元素,將特定類作為其底層的,元素特定容器的尾部(即棧頂)被壓入和彈出。

stack的默認(rèn)定義的模板

注意:
默認(rèn)情況下stack是以deque作為底層容器。
(大多數(shù)情況下都是使用queue作為底層容器即可,我們需要變動的只是存儲類型)
方式一:規(guī)定的存儲類型
//int類型 stack<int> st1; //double類型 stack<double> st2;
方式二:規(guī)定底層實現(xiàn)容器
//用list stack<int, list<int>> st1; //用vector stack<int, vector<int>> st2;
stack的使用
| 函數(shù)說明 | 接口說明 |
| empty() | 檢測stack是否為空 |
| size() | 返回stack中元素的個數(shù) |
| top() | 返回棧頂元素的引用 |
| push() | 將元素val壓入stack中 |
| pop() | 將stack中尾部的元素彈出 |
#include<iostream>
#include<stack>
using namespace std;
int main() {
stack<int> st;
for (int i = 0; i < 10; i++) {
st.push(i);
}
//0 1 2 3 4 5 6 7 8 9
cout << st.size() << endl;//輸出:10
while (!st.empty()) {
cout << st.top() << " ";
st.pop();
}
cout << endl; //輸出:9 8 7 6 5 4 3 2 1 0
return 0;
}queue的介紹和使用
隊列是一種容器適配器,專門用于在FIFO上下文(先進(jìn)先出)中操作,其中從容器一端插入元素,另一端提取元素。 隊列作為容器適配器實現(xiàn),容器適配器即將特定容器類封裝作為其底層容器類,queue提供一組特定的成員函數(shù)來訪問其元素。元素從隊尾入隊列,從隊頭出隊列。

queue的默認(rèn)定義的模板

注意:
默認(rèn)情況下queue是以deque作為底層容器。
(大多數(shù)情況下都是使用queue作為底層容器即可,我們需要變動的只是存儲類型)
方式一:規(guī)定的存儲類型
//int類型 queue<int> st1; //double類型 queue<double> st2;
方式二:規(guī)定底層實現(xiàn)容器
//用list stack<int, list<int>> st1; //用vector stack<int, vector<int>> st2;
queue的使用
| 函數(shù)聲明 | 接口說明 |
| empty() | 檢測隊列是否為空,是返回true,否則返回false |
| size() | 返回隊列中有效元素的個數(shù) |
| front() | 返回隊頭元素的引用 |
| back() | 返回隊尾元素的引用 |
| push() | 在隊尾將元素val入隊列 |
| pop() | 將隊頭元素出隊列 |
#include <iostream>
#include <queue>
using namespace std;
int main(){
queue<int> q;
for (int i = 0; i < 10; i++) {
q.push(i);
}
//0 1 2 3 4 5 6 7 8 9
cout << q.size() << endl; //輸出:10
while (!q.empty()){
cout << q.front() << " ";
q.pop();
}
cout << endl; //輸出:0 1 2 3 4 5 6 7 8 9
return 0;
}
到此這篇關(guān)于C++ stack與queue使用方法詳細(xì)講解的文章就介紹到這了,更多相關(guān)C++ stack與queue內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言開發(fā)實現(xiàn)井字棋及電腦落子優(yōu)化示例詳解
以前上課經(jīng)常和同桌玩起井字棋,那么我們就當(dāng)我們回憶童年,現(xiàn)在也用C語言來實現(xiàn)井字棋,本次代碼相對于初階的井字棋,在電腦下棋代碼部分做了優(yōu)化,使得電腦更加具有威脅2021-11-11
詳解C語言中index()函數(shù)和rindex()函數(shù)的用法
這篇文章主要介紹了C語言中index()函數(shù)和rndex()函數(shù)的用法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,要的朋友可以參考下2015-08-08

