本篇文章之所以诞生,是由于在刷PAT时需要掌握STL模板库,所以特意测试学习了常用的方法。仅适用于G++环境下的单线程单文档情况。对于多文档多线程情况不保证正确性。如果你是只想在数据结构与算法比赛中多拿一些AC而学习STL,小码农自认它还是挺好的。如果是项目需要而学习STL,还是建议读官方文档。
如果你觉得博文状态下阅读费劲,可以去我的github下载源码。如果出现对不齐的情况,把编辑器Tab键缩进设置成4个就可以了。欢迎指点评论。
#include<bits/stdc++.h>
using namespace std;
/*
下面的注释:
1)DT : data type
*/
/*
由于栈是LIFO结构,所以不存在迭代器,且只能在栈顶进行操作。
*/
int main()
{
/*
1、创建:
默认创建: stack<int> s1;
拷贝创建: stack<int> s2(ano);
*/
stack<int> s1;
stack<int> s2(s1);
/*
2、入栈: void push(DT data);
*/
for(int i = 0; i < 10; i++)
s1.push(i);
/*
3、访问但不弹出栈顶元素:DT top();
*/
cout << s1.top() << endl;
/*Console: 9 */
/*
4、弹出但不访问栈顶元素:void pop();
*/
s1.pop();
cout << s1.top() << endl;
/*Console: 8 */
/*
5、判断栈是否为空:bool empty();
*/
cout << s1.empty() << " " << s2.empty() << endl;
/*Console: 0 1 */
/*
6、获得栈中元素的个数:int size();
*/
cout << s1.size() << endl;
/*Console: 9 */
return 0;
}