1. 程式人生 > 其它 >STL--容器stack、queue、priority_queue

STL--容器stack、queue、priority_queue

STL--容器stack、queue、priority_queue

 

一、棧(stack)  

使用前要新增標頭檔案#include <stack>

1.構造:
stack<T> stk; //T為資料型別,這裡為一個模板型別

2.賦值操作:
stack<T>stk(s); //用s賦值給stk

3.資料存取:
stk.push(elem); //將elem 壓入棧stk中
stk.pop(); //棧頂元素出棧
stk.top(); // 整體代表棧頂元素的值

4.大小操作:
stk.empty(); //判斷是否為空,返回true or false
stk.size(); //整體值為棧中元素的個數

5.清空操作:
stack<T> empty;
swap(empty, stk);
//
1、相當於交換了stk與一個空臨時stack再結束,在堆空間本質還是一個一個刪除
還有一種迴圈pop判空法,但是前者更快
再或者運算子過載賦值空棧給stk。

 

 

二、棧和佇列----佇列

構造:
queue<T>q;
賦值:
queue<T>q1(q);
資料存取:
q.pop() //刪除隊首元素但不返回其值
q.front() //整體值為隊頭元素的值
q.push(data) //將data壓入隊尾
q.back() //返回佇列尾部元素的值但不刪除
大小操作:
q.empty() //是否為空
q.size() //元素個數
清空:
queue<int> empty;
swap(empty, q); //同上