close
因為 stack 的後進先出原則,你只能看到最上面 top 的元素是什麼,之前推 push 進去的元素無法去遍歷查看的。
- stk.push(x);
- stk.pop();
- x = stk.top();
- stk.empty()
- stk.size()
#include <iosstream> #include <stack> using namespace std; int main(){ stack <int> stk ; }
將元素放入 stack 頂端
std::stack<int> mystack; mystack.push(1); mystack.push(2); mystack.push(3); std::cout << mystack.size() << "\n"; // 3
從vector變成stack
std::vector<int> myvector = {4, 5}; std::stack<int, std::vector<int>> mystack2(myvector); std::cout << mystack2.size() << "\n"; // 2
從deque變成stack
std::deque<int> mydeque = {6, 7, 8}; std::stack<int, std::deque<int>> mystack3(mydeque); std::cout << mystack3.size() << "\n"; // 3
判斷 stack 是否為空 empty()
std::stack<int> mystack; if (mystack.empty()) std::cout << "empty\n"; else std::cout << "not empty\n"; mystack.push(1); if (mystack.empty()) std::cout << "empty\n"; else std::cout << "not empty\n";
從 stack 頂端移出元素
std::stack<int> mystack; mystack.push(1); mystack.push(2); std::cout << mystack.size() << "\n"; // 2 if (!mystack.empty()) mystack.pop(); if (!mystack.empty()) mystack.pop(); std::cout << mystack.size() << "\n"; // 0 if (!mystack.empty()) mystack.pop();
取得 stack 裡的元素數量
std::stack<char> mystack; std::cout << mystack.size() << "\n";//0 mystack.push('a'); std::cout << mystack.size() << "\n";//1 mystack.push('b'); std::cout << mystack.size() << "\n";//2
stack 查看最頂端的元素top()
std::stack<int> mystack; // std::cout << mystack.top() << "\n"; // Segmentation fault if (!mystack.empty()) std::cout << mystack.top() << "\n"; mystack.push(1); mystack.push(2); mystack.push(3); if (!mystack.empty()) std::cout << mystack.top() << "\n"; // 3
文章標籤
全站熱搜
留言列表