stack中常見方法
- top():返回一個棧頂元素的引用,類型為 T&。如果棧為空,返回值未定義。
- push(const T& obj):可以將對象副本壓入棧頂。這是通過調用底層容器的 push_back() 函數完成的。
- push(T&& obj):以移動對象的方式將對象壓入棧頂。這是通過調用底層容器的有右值引用參數的 push_back() 函數完成的。
- pop():彈出棧頂元素,直接刪除棧頂元素,並沒有返回該值哦。
- size():返回棧中元素的個數。
- empty():在棧中沒有元素的情況下返回 true。
- emplace():用傳入的參數調用構造函數,在棧頂生成對象。
- swap(stack
& other_stack):將當前棧中的元素和參數中的元素交換。參數所包含元素的類型必須和當前棧的相同。對於 stack 對象有一個特例化的全局函數 swap() 可以使用。
stack簡單用法示例
int main(){
//定義一個空棧a
stack<int> a;
for(int i = 1; i <= 3; i++)
a.push(i);
cout << "size of a is " << a.size()<< endl;
cout << "element of a is: " ;
for(; a.size() > 0;){
// cout << a.pop() << " "; pop直接刪除元素並沒有返回,所以這種用法是錯誤的
cout << a.top() << " ";
a.pop();
}
cout <<endl;
cout << "after pop all element in a,the size = " << a.size()<< endl;
cout << endl;
return 0;
}
輸出結果如下: