棧是最為常用的數據結構了,很多算法都是依靠棧來實現的,比如遞歸。我們要手動來實現棧,顯得十分繁瑣和麻煩,而且復用性不好。C++ 的STL中已經幫我們封裝好了棧,我們只要方便的進行調用即可。該篇博客主要介紹STL 中stack的使用,stack應該說是STL中最簡單的容器了。實例代碼上傳至 https://github.com/chenyufeng1991/STL_stack 。
(1)首先引入頭文件 #include
(2)需要注意的是,stack不提供任何的迭代器操作。因為stack不能進行隨機訪問,也不能進行遍歷,它只能訪問棧頂的元素。
(3)創建stack
stack(4)push(): 入棧stack1; // 默認構造函數 stack stack2(stack1); // 復制構造函數
stack1.push(2); stack1.push(4); stack1.push(6);(5)top(): 訪問棧頂元素
cout << "頂部元素為:" << stack1.top() << endl;僅僅只是獲取棧頂元素的值。
stack1.pop(); // 出棧操作是不返回棧頂元素的(7)empty():判斷棧是否為空
cout << "stack是否為空:" << stack1.empty() << endl;返回1表示stack為空,0表示不為空。
(8)size():獲取當前stack中元素個數
cout << "stack.size:" << stack1.size() << endl;
棧作為最簡單的數據結構,我們一定要好好掌握。