ACM/ICPC竞赛之STL--stack
来源:互联网 发布:花生壳映射80端口失败 编辑:程序博客网 时间:2024/05/16 08:29
ACM模版
stack(栈)和queue(队列)是在程序设计中经常会用到的数据容器,STL为我们提供了方便的stack(栈)和queue(队列)的实现。
准确的说,STL中的stack和queue不同于vector、list等容器,而是对这些容器进行了重新的包装。这里我们不去深入讨论STL的stack和queue的实现细节,而是来了解一些他们的基本使用。
stack
stack模版类的定义在<stack
>头文件中。
stack模版类需要两个模版参数,一个是元素类型,另一个是容器类型,但是只有元素类型是必要的,在不指定容器类型时,默认容器的类型为deque。
定义stack对象的示例代码如下:
stack<int> s;stack<string> ss;
stack的基本操作有:
s.push(x); // 入栈s.pop(); // 出栈s.top(); // 访问栈顶s.empty(); // 当栈空时,返回trues.size(); // 访问栈中元素个数
Example:
/* * 1064--Parencoding(吉林大学OJ) * string和stack实现 */#include <iostream>#include <string>#include <stack>using namespace std;int main(){ int n; cin >> n; for (int i = 0; i < n; i++) { int m; cin >> m; string str; int leftpa = 0; for (int j = 0; j < m; j++) { int p; cin >> p; for (int k = 0; k < p - leftpa; k++) { str += '('; } str += ')'; leftpa = p; } stack<int> s; for (string::iterator it = str.begin(); it != str.end(); it++) { if (*it == '(') { s.push(1); } else { int p = s.top(); s.pop(); cout << p << " "; if (!s.empty()) { s.top() += p; } } cout << '\n'; } } return 0;}
0 0
- ACM/ICPC竞赛之STL--stack
- 第07篇 ACM/ICPC竞赛之STL--stack/queue
- ACM/ICPC竞赛之STL--map
- ACM/ICPC竞赛之STL简介
- ACM/ICPC竞赛之STL--algorithm
- ACM/ICPC竞赛之STL--string
- ACM/ICPC竞赛之STL--iterator简介
- ACM/ICPC竞赛之STL--vector
- ACM/ICPC竞赛之STL--pair
- ACM/ICPC 竞赛之STL简介
- ACM/ICPC竞赛之STL简介
- ACM/ICPC竞赛之STL--vector
- ACM/ICPC竞赛之STL--iterator简介
- ACM/ICPC竞赛之STL--string
- ACM/ICPC竞赛之STL--queue
- ACM/ICPC竞赛之STL--map
- ACM/ICPC竞赛之STL--algorithm
- ACM/ICPC竞赛之STL--set
- ACM/ICPC竞赛之STL--string
- Login双层动画
- Java:反射机制浅析
- [leetcode] 348. Design Tic-Tac-Toe 解题报告
- SafetyNet: Google's tamper detection - Part 2
- ACM/ICPC竞赛之STL--stack
- 解决PowerDesigner老是弹出安装打印机弹窗的问题
- 最大半径问题
- client,offset,scroll理解
- 实现页面停留几秒自动跳转
- ACM/ICPC竞赛之STL--queue
- vim常用命令--visual模式下粘贴、复制
- centos 7 源码安装及 php-fpm 配置与 nginx 集成
- ACM/ICPC竞赛之STL--map