c++ 栈 STL的基本操作
生活随笔
收集整理的這篇文章主要介紹了
c++ 栈 STL的基本操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考:https://www.cnblogs.com/QG-whz/p/5170418.html#_label0
棧的存儲結構
棧既然是一種線性結構,就能夠以數組或鏈表(單向鏈表、雙向鏈表或循環鏈表)作為底層數據結構。
堆棧操作
和其他序列容器相比,stack 是一類存儲機制簡單、所提供操作較少的容器。下面是 stack 容器可以提供的一套完整操作:
top(): 返回一個棧頂元素的引用,類型為 T&。如果棧為空,返回值未定義。
push(T&& obj): 以移動對象的方式將對象壓入棧頂。這是通過調用底層容器的有右值引用參數的
pop(): 彈出棧頂元素。
size():返回棧中元素的個數。
empty(): 在棧中沒有元素的情況下返回 true。
emplace(): 用傳入的參數調用構造函數,在棧頂生成對象。
swap(stack & other_stack): 將當前棧中的元素和參數中的元素交換。參數所包含元素的類型必須和當前棧的相同。對于 stack 對象有一個特例化的全局函數 swap() 可以使用。
代碼
#include<iostream> #include<stack> using namespace std; int main() {stack<int> s1,s2;for (int i = 0; i < 10; i++){s1.push(i);}for (int i = 0; i < 10; i++){s2.push(i+10);}cout << "s1.empty(): " << s1.empty() << endl;cout << "s1.size(): " << s1.size() << endl;cout << "s1.top(): " << s1.top() << endl;cout << endl << "執行 s1.pop() " << endl;s1.pop();cout << "此時 s1.top(): " << s1.top() << endl;cout << endl << "執行 swap(s1,s2) " << endl;swap(s1, s2);cout << "s1的元素" << endl;while (!(s1.empty())){cout << s1.top()<<" ";s1.pop();}cout <<endl<< "s2的元素" << endl;while (!s2.empty()){cout << s2.top()<<" ";s2.pop();} }小結:
棧還是比較簡單的,畢竟它的底層結構是數組或鏈表,只要明白棧的先進后出特性就好
學習了棧,隊列也不難畢竟隊列的的層結構也是線性的c++ 隊列 STL庫的基本操作
總結
以上是生活随笔為你收集整理的c++ 栈 STL的基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bash: mail: command
- 下一篇: 计算机丢失vcomp110.dll,ms