stack 是一種先進后出(first in last out,FILO)的數據結構,它只有一個出口,stack 只允許在棧頂新增元素,移除元素,獲得頂端元素,但是除了頂端之外,其他地方不允許存取
元素,只有棧頂元素可以被外界使用,也就是說 stack 不具有遍歷行為,
沒有迭代器。
特性總結: 棧不能遍歷,不支持隨機存取,只能通過 top 從棧頂獲取和刪除元素.
1 #include <iostream> 2 #include <stack> 3 using namespace std; 4 5 // stack 構造函數 6 // stack<T> stkT;//stack 采用模板類實現, stack 對象的默認構造形式: 7 // stack(const stack &stk);//拷貝構造函數 8 9 // stack 賦值操作 10 // stack& operator=(const stack &stk);//重載等號操作符 11 12 // stack 數據存取操作 13 // push(elem);//向棧頂添加元素 14 // pop();//從棧頂移除第一個元素 15 // top();//返回棧頂元素 16 17 // stack 大小操作 18 // empty();//判斷堆棧是否為空 19 // size();//返回堆棧的大小 20 21 void test01() 22 { 23 // 初始化 24 stack<int> s1; 25 stack<int> s2(s1); 26 // stack 操作 27 s1.push(10); 28 s1.push(20); 29 s1.push(30); 30 s1.push(100); 31 cout << "棧頂元素:" << s1.top() << endl; 32 while (!s1.empty()) 33 { 34 cout << s1.top() << " "; 35 s1.pop(); 36 } 37 cout << endl; 38 cout << "size: " << s1.size() << endl; 39 cout << "------------------" << endl; 40 } 41 42 int main() 43 { 44 test01(); 45 getchar(); 46 return 0; 47 }