栈stack是一种先进先出的数据结构,在很多高级语言中都有它的定义
将3个元素a,b,c一次以1,2,3的顺序压入(push)站内,连续3次弹出(pop)的时候会以c,b,a的顺序弹出
在C++中
stack<int> a;
int num[3];
a.push(1);
a.push(2);
a.push(3);//此时栈a的元素为[ 1, 2, 3]
for(int i = 0;i != 3;i++)
{
num[i] = a.top();
a.pop();
}//最后得到的数组num就为[ 3, 2, 1]
看看栈的实际应用
(题目来自https://leetcode-cn.com/explore/learn/card/queue-stack/218/stack-last-in-first-out-data-structure/879/)
这题乍一看好像和栈没有啥关系第一反应是会想到用暴力找值解题
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& T) {
vector<int> result(T.size(),0);
for(int i = 0;i != T.size();i++)
{
for(int j = i;j != T.size();j++)
{
if(T[j]&