栈容器(stack)
STL库中的栈容器(stack),由于属于C++库,因此在代码前必需加入
using namespace std;
栈容器,是一个栈类模板,栈具有后进先出的特点。栈容器必须结合其他容器使用,其默认的内部容器是deque。它先进后出,只有一个出口不允许遍历。
stack的主要成员函数如下:
empty() | 容器中没有元素时返回true,否则返回false; |
size() | 返回容器中当前元素个数 |
top() | 返回栈顶元素 |
push() | 元素进栈 |
pop() | 元素出栈 |
//代码示例
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> st; // 其中<>内是栈容器内元素类型
st.push(1); st.push(2); st.push(3);
st.pop(); cout << st.top() << " ";
st.pop(); st.top() = 7;
st.push(4); st.push(5);
st.pop();
while (!st.empty())
{
cout << st.top() << " ";
st.pop();
}
cout << endl;
return 1;
}
迷宫问题
问题描述:给定一个M×N的迷宫图,求一条从指定入口到出口的迷宫路径,假设一个迷宫图如图所示(M=8,N=8),其中的每个方块用空白表示通道,用阴影表示障碍物。
//代码示例:
#include <stdio.h>
#include <malloc.h>
#include <stack>
using namespace std;
#define M 8
#define N 8
#define MaxSize 100
typedef struct
{
int i; // 当前方块行
int j; // 当前方块列
int di; // 当前方块可走方向
}Box;
typedef struct
{
Box data[MaxSize];
int top;
}StType; // 栈类型
int mg[M + 2][N + 2] =
{
{
1, 1,1,1,1,1,1,1,1,1},
{
1, 0,0,1,0,0