stl = standard template library,即標準模板庫,stl可分為容器(containers)、迭代器(iterators)、空間配置器(allocator)、配接器(adapters)、演算法(algorithms)、仿函式(functors)六個部分。
其中,容器分為三類:序列式容器,容器介面卡和關聯式容器。
這裡要說的棧、佇列和優先佇列屬於容器介面卡。
stl中棧的使用
首先,使用c++ stl中的棧要加入標頭檔案stack,並且使用命名空間std,即
#include using namespace std;
棧的定義方式如下:
stacks1;//元素為 int 型
stacks2;// 元素為string型
stacks3;//元素為自定義型
棧的操作有:
empty() 棧為空時返回真
pop() 移除棧頂元素,但不會返回棧頂元素的值
push(x) 在棧頂增加元素x
size() 返回棧中元素的數目
top() 返回棧頂元素
stl中佇列的使用
佇列的使用方式類似於棧,
宣告:
#include using namespace std;
定義:
queues1;
queues2;
queues3;
基本操作:
push(x) 將x加入佇列的末端
pop() 彈出佇列的第乙個元素,也就是對頂元素,但不返回任何值
front() 返回佇列的第乙個元素
back() 返回佇列的最後乙個元素
empty() 當隊列為空時,返回true
size() 返回佇列的長度
stl中優先佇列的使用
宣告:
#include using namespace std;
普通定義:
priority_queueq;//通過操作,按照元素從大到小的順序出隊
通過自定義優先順序的方式定義:
struct cmp
};priority_queue, cmp>q;//其中,第二個引數為容器型別。第三個引數為比較函式。
結構體的宣告方式:
struct node
};priority_queueq; //在該結構中,y為值, x為優先順序。
//通過自定義operator《操作符來比較元素中的優先順序。
//在過載」<」時,最好不要過載」>」,可能會發生編譯錯誤
基本操作:
empty() 如果隊列為空返回真
pop() 刪除隊頂元素
push() 加入乙個元素
size() 返回優先佇列中擁有的元素個數
top() 返回優先佇列隊頂元素
ps: 在預設的優先佇列中,優先順序高的先出隊。在預設的int型中先出隊的為較大的數。
STL 棧,佇列,優先佇列
stl 棧 include includeusing namespace std struct node int main stackroot struct node x,y x.value 3 y.value 4 root.push x root.push y while root.empty r...
棧 佇列 優先佇列 STL
棧 include 標頭檔案 stackst 定義 st.push str1 0 入棧 cur st.top 取棧頂值 st.pop 出棧 st empty 空為true 佇列 include queue char que que.push a a que.front que.pop que.emp...
STL 優先佇列 佇列 棧的使用
stl 中優先佇列的使用方法 priority queu 基本操作 empty 如果隊列為空返回真 pop 刪除對頂元素 push 加入乙個元素 size 返回優先佇列中擁有的元素個數 top 返回優先佇列對頂元素 在預設的優先佇列中,優先順序高的先出隊。在預設的int型中先出隊的為較大的數。使用方...