c++中stack容器
生活随笔
收集整理的這篇文章主要介紹了
c++中stack容器
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Stack 簡介
stack沒有迭代器
Stack所有元素的進(jìn)出都必須符合“先進(jìn)后出”的條件,只有stack頂端的元素,才有機(jī)會被外界取用,stack不提供遍歷功能,也不提供迭代器
stack 對象的默認(rèn)構(gòu)造
stack 的 push()與 pop()方法
stack 對象的拷貝構(gòu)造與賦值
stack 的數(shù)據(jù)存取
stack 的大小
stack.empty(); //判斷堆棧是否為空
stack.size(); //返回堆棧的大小
void test01(){stack<int>s;//放入數(shù)據(jù) pushs.push(10);s.push(20);s.push(30);s.push(40);while (s.size()!=0){cout << "棧頂為:" << s.top() << endl;//40先出 30 20 10//彈出棧頂元素s.pop();}cout << "size= " << s.size() << endl;}int main(){test01();system("pause");return 0;}逆波蘭表達(dá)式求值
#include<iostream> using namespace std; #include<stack> #include<vector> #include<string>class Solution { public:int evalRPN(vector<string>& tokens) {stack<int> s;for (size_t i = 0; i < tokens.size(); ++i) {string& str = tokens[i];// str為數(shù)字 if (!("+" == str || "-" == str || "*" == str || "/" == str)){s.push(atoi(str.c_str()));}else{// str為操作符 int right = s.top();s.pop();int left = s.top();s.pop();switch (str[0]){case '+':s.push(left + right);break;case '-':s.push(left - right);break;case '*':s.push(left * right);break;case '/':// 題目說明了不存在除數(shù)為0的情況 s.push(left / right);break;}}}return s.top();} };int main() {Solution s;vector<string> s1 = { "2", "1", "+", "3", "*" };s.evalRPN(s1);system("pause");return 0; }總結(jié)
以上是生活随笔為你收集整理的c++中stack容器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++中的deque容器
- 下一篇: c++中的queue容器