C++ stack与queue使用方法详细讲解
川入 人气:0Stack的介绍和使用
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; }
加载全部内容