标签:style blog http color os 文件 io for
栈stack
#include<stack>
stack<long long>mystack; //以下以mystack为例
1.将元素a入栈:mystack.push(a);
2.将栈顶元素弹栈/出栈:mystack.pop();
3.判断栈是否为空:mystack.empty()
4.栈的长度:cout<<stack.size();
5.访问栈顶元素:cout<<stack.top();
1.在出栈或者访问栈顶元素之前应该先判断栈是否为空(或者栈长度是否为0),否则会出错
2.定义中的<>内不要总是习惯性int。。适当long long
3.( mystack.empty() ) 是一个判断条件,外围一定要习惯性加上一层(),免得后面再改。
http://wikioi.com/problem/3137/
http://wikioi.com/problem/3138/
http://wikioi.com/problem/3139/
三道模板
对应程序
//练习1 #include<iostream> #include<stack> using namespace std; int n,i,type,a; int main() { stack<int>st; cin>>n; for (i=1;i<=n;i++) { cin>>type; if (type==1) { cin>>a; st.push(a); } if (type==2) st.pop(); } if (st.empty()) {cout<<"impossible!"<<endl;} else {cout<<st.top()<<endl;} }
//练习2 #include<iostream> #include<stack> using namespace std; int n,i,type,a; int main() { stack<long long>st; cin>>n; for (i=1;i<=n;i++) { cin>>type; if (type==1) { cin>>a; st.push(a); } if (type==2) { if (!st.empty()) { st.pop(); } else { cout<<"impossible!"<<endl; return 0; } } } if (st.empty()) {cout<<"impossible!"<<endl;} else {cout<<st.top()<<endl;} return 0; }
//练习3 #include<iostream> #include<stack> using namespace std; int n,i,type,a; int main() { stack<long long>st; cin>>n; for (i=1;i<=n;i++) { cin>>type; if (type==1) { cin>>a; st.push(a); } if (type==2) { if (!st.empty()) { st.pop(); } } if (type==3) { cout<<st.top()<<endl; } } return 0; }
只是为了写STL。。所以不要在意代码的速度啊长度啊什么的。。学STL才是正道。。。
标签:style blog http color os 文件 io for
原文地址:http://www.cnblogs.com/seekdreamer/p/3876674.html