C++ stack与queue使用方法详细讲解
作者:川入
stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行 元素的插入与提取操作;队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素
Stack的介绍和使用
stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。 stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。
stack的默认定义的模板
注意:
默认情况下stack是以deque作为底层容器。
(大多数情况下都是使用queue作为底层容器即可,我们需要变动的只是存储类型)
方式一:规定的存储类型
//int类型 stack<int> st1; //double类型 stack<double> st2;
方式二:规定底层实现容器
//用list stack<int, list<int>> st1; //用vector stack<int, vector<int>> st2;
stack的使用
函数说明 | 接口说明 |
empty() | 检测stack是否为空 |
size() | 返回stack中元素的个数 |
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上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。 队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。
queue的默认定义的模板
注意:
默认情况下queue是以deque作为底层容器。
(大多数情况下都是使用queue作为底层容器即可,我们需要变动的只是存储类型)
方式一:规定的存储类型
//int类型 queue<int> st1; //double类型 queue<double> st2;
方式二:规定底层实现容器
//用list stack<int, list<int>> st1; //用vector stack<int, vector<int>> st2;
queue的使用
函数声明 | 接口说明 |
empty() | 检测队列是否为空,是返回true,否则返回false |
size() | 返回队列中有效元素的个数 |
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; }
到此这篇关于C++ stack与queue使用方法详细讲解的文章就介绍到这了,更多相关C++ stack与queue内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!