STL中棧 佇列和優先佇列的使用

2021-07-04 02:02:33 字數 1721 閱讀 5800

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型中先出隊的為較大的數。使用方...