STL常用容器總結——stack棧
阿新 • • 發佈:2019-02-07
棧中的資料是先進後出(FILO),棧只有一個出口,新增和移除元素都只能在棧頂操作。在STL中,棧是以別的容器作為底部結構,修改介面使其符合棧的特性。預設情況下,棧使用deque作為其底層資料結構,也可以指定使用vector或list等。
棧常用的函式有:
1.資料操作
stk.top()
返回棧頂資料的引用
stk.push(elem)
在棧頂新增資料
stk.pop()
彈出棧頂資料
2.其他操作‘
stk.empty()
判斷棧是否為空,若空返回true,否則返回false。
stk.size()
返回棧中資料的個數。
stack棧例子:
#include <iostream> #include <stack> #include <vector> using std::stack; using std::vector; int main() { stack<int> stk;//預設使用deque作為底層資料結構 stack<int, vector<int> > stkv;//指定vector為底層資料結構 for (int i = 0; i < 10; ++i) { stk.push(i*i); stkv.push(i); } std::cout << "棧stk的資料:\n"; while (!stk.empty()) { std::cout << stk.top()<<" "; stk.pop(); } std::cout << "\n\n棧stkv的資料:\n"; while (!stkv.empty()) { std::cout << stkv.top() << " "; stkv.pop(); } std::cout << "\n\n棧stk的大小:\n"<<stk.size(); std::cout << "\n\n棧stkv的大小:\n" << stkv.size() << "\n\n"; system("pause"); return 0; }