栈的主要操作有以下几种:
- push
向栈顶插入元素(摞上去一个盘子) - top
获取栈顶元素的值(看看最上面那个盘子上面写了什么东西) - pop
取出栈顶元素(拿走最上面的盘子) - isEmpty
判断栈是否为空(这里有没有盘子) - clear
清空栈(把盘子都拿走)
链接:https://zhuanlan.zhihu.com/p/23041083
使用标准库的栈和队列时,先包含相关的头文件
#include<stack>
#include<queue>
定义栈如下:
stack<int> s;
定义队列如下:
queue<int> q;
s.empty() 如果栈为空返回true,否则返回false
s.size() 返回栈中元素的个数
s.pop() 删除栈顶元素
s.top() 返回栈顶的元素
s.push() 在栈顶压入新元素
q.empty() 如果队列为空返回true,否则返回false
q.size() 返回队列中元素的个数
q.pop() 删除队列首元素
q.front() 返回队首元素的值
q.push() 在队尾压入新元素
q.back() 返回队列尾元素的值
c++stack(堆栈)
它是一个容器的改编,它实现了一个先进后出的数据结构(FILO)
使用该容器时需要包含#include<stack>头文件;
定义stack对象的示例代码如下:
stack<int>s1;
stack<string>s2;
stack的基本操作有:
1.入栈:如s.push(x);
2.出栈:如 s.pop().注意:出栈操作只是删除栈顶的元素,并不返回该元素。
3.访问栈顶:如s.top();
4.判断栈空:如s.empty().当栈空时返回true。
5.访问栈中的元素个数,如s.size();
一个例子:
#include<iostream> #include<stack> using namespace std; int main(void) { stack<double>s;//定义一个栈 for (int i = 0; i<10; i++) s.push(i); while (!s.empty()) { printf("%lf ", s.top()); s.pop(); } cout << "栈内的元素的个数为:" << s.size() << endl; system("pause"); return 0; }
原文:https://blog.csdn.net/tham_/article/details/44733101