C++ stack與queue使用方法詳細(xì)講解
Stack的介紹和使用
stack是一種容器適配器,專門用在具有后進(jìn)先出操作的上下文環(huán)境中,其刪除只能從容器的一端進(jìn)行元素的插入與提取操作。 stack是作為容器適配器被實(shí)現(xiàn)的,容器適配器即是對(duì)特定類封裝作為其底層的容器,并提供一組特定的成員函數(shù)來訪問其元素,將特定類作為其底層的,元素特定容器的尾部(即棧頂)被壓入和彈出。
stack的默認(rèn)定義的模板
注意:
默認(rèn)情況下stack是以deque作為底層容器。
(大多數(shù)情況下都是使用queue作為底層容器即可,我們需要變動(dòng)的只是存儲(chǔ)類型)
方式一:規(guī)定的存儲(chǔ)類型
//int類型 stack<int> st1; //double類型 stack<double> st2;
方式二:規(guī)定底層實(shí)現(xiàn)容器
//用list stack<int, list<int>> st1; //用vector stack<int, vector<int>> st2;
stack的使用
函數(shù)說明 | 接口說明 |
empty() | 檢測(cè)stack是否為空 |
size() | 返回stack中元素的個(gè)數(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的介紹和使用
隊(duì)列是一種容器適配器,專門用于在FIFO上下文(先進(jìn)先出)中操作,其中從容器一端插入元素,另一端提取元素。 隊(duì)列作為容器適配器實(shí)現(xiàn),容器適配器即將特定容器類封裝作為其底層容器類,queue提供一組特定的成員函數(shù)來訪問其元素。元素從隊(duì)尾入隊(duì)列,從隊(duì)頭出隊(duì)列。
queue的默認(rèn)定義的模板
注意:
默認(rèn)情況下queue是以deque作為底層容器。
(大多數(shù)情況下都是使用queue作為底層容器即可,我們需要變動(dòng)的只是存儲(chǔ)類型)
方式一:規(guī)定的存儲(chǔ)類型
//int類型 queue<int> st1; //double類型 queue<double> st2;
方式二:規(guī)定底層實(shí)現(xiàn)容器
//用list stack<int, list<int>> st1; //用vector stack<int, vector<int>> st2;
queue的使用
函數(shù)聲明 | 接口說明 |
empty() | 檢測(cè)隊(duì)列是否為空,是返回true,否則返回false |
size() | 返回隊(duì)列中有效元素的個(gè)數(shù) |
front() | 返回隊(duì)頭元素的引用 |
back() | 返回隊(duì)尾元素的引用 |
push() | 在隊(duì)尾將元素val入隊(duì)列 |
pop() | 將隊(duì)頭元素出隊(duì)列 |
#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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C++中stack、queue、vector的用法詳解
- C++ STL容器stack和queue詳解
- c++中stack、queue和vector的基本操作示例
- C++線程安全容器stack和queue的使用詳細(xì)介紹
- C++?超詳細(xì)講解stack與queue的使用
- C++ stack與queue模擬實(shí)現(xiàn)詳解
- C++ 詳細(xì)講解stack與queue的模擬實(shí)現(xiàn)
- 深入探索C++中stack和queue的底層實(shí)現(xiàn)
- c++中的stack和dequeue解析
- 圖解C++的STL之stack和queue,輕松理解數(shù)據(jù)結(jié)構(gòu)
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(45.跳躍游戲之二)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(45.跳躍游戲之二),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C++實(shí)現(xiàn)LeetCode(88.混合插入有序數(shù)組)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(88.混合插入有序數(shù)組),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07c++11中關(guān)于std::thread的join的詳解
這篇文章主要介紹了c++11中關(guān)于std::thread的join詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Qt項(xiàng)目實(shí)戰(zhàn)之實(shí)現(xiàn)MP3音樂播放器
這篇文章主要為大家詳細(xì)介紹了如何利用Qt實(shí)現(xiàn)MP3音樂播放器,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以了解一下2023-03-03