C++ STL 之 stack

stack 是一种先进后出(first in last out,FILO)的数据结构,它只有一个出口,stack 只允许在栈顶新增元素,移除元素,获得顶端元素,但是除了顶端之外,其他地方不允许存取

元素,只有栈顶元素可以被外界使用,也就是说 stack 不具有遍历行为,没有迭代器

特性总结: 栈不能遍历,不支持随机存取,只能通过 top 从栈顶获取和删除元素.

 1 #include <iostream>
 2 #include <stack>
 3 using namespace std;
 4 
 5 // stack 构造函数
 6 // stack<T> stkT;//stack 采用模板类实现, stack 对象的默认构造形式:
 7 // stack(const stack &stk);//拷贝构造函数
 8  
 9 // stack 赋值操作
10 // stack& operator=(const stack &stk);//重载等号操作符
11 
12 // stack 数据存取操作
13 // push(elem);//向栈顶添加元素
14 // pop();//从栈顶移除第一个元素
15 // top();//返回栈顶元素
16 
17 // stack 大小操作
18 // empty();//判断堆栈是否为空
19 // size();//返回堆栈的大小
20 
21 void test01()
22 {
23     // 初始化
24     stack<int> s1;
25     stack<int> s2(s1);
26     // stack 操作
27     s1.push(10);
28     s1.push(20);
29     s1.push(30);
30     s1.push(100);
31     cout << "栈顶元素:" << s1.top() << endl;
32     while (!s1.empty())
33     {
34         cout << s1.top() << " ";
35         s1.pop();
36     }
37     cout << endl;
38     cout << "size: " << s1.size() << endl;
39     cout << "------------------" << endl;
40 }
41 
42 int main()
43 {
44     test01();
45     getchar();
46     return 0;
47 }