C STL之優先佇列

2021-07-10 11:07:05 字數 3635 閱讀 8305

[cpp]view plain

copy

struct

cmp1  

};    

struct

cmp2  

};    

struct

node1  

};    

struct

node2  

};   

priority_queue>q1;

//採用預設優先順序構造佇列     

priority_queue,vector<

int>,cmp1>q2;

//最小值優先   

priority_queue,vector<

int>,cmp2>q3;

//最大值優先   

priority_queue,vector<

int>,greater<

int> >q4;

//注意「>>」會被認為錯誤,   

//這是右移運算子,所以這裡用空格號隔開,最小值優先 

priority_queue,vector<

int>,less<

int> >q5;

//最大值優先    

priority_queueq6;  //自定義優先順序

priority_queueq7;

stl 中優先佇列的使用方法(priority_queu)

基本操作:

empty() 如果隊列為空返回真

pop() 刪除對頂元素

push() 加入乙個元素

size() 返回優先佇列中擁有的元素個數

top() 返回優先佇列對頂元素

在預設的優先佇列中,優先順序高的先出隊。在預設的int型中先出隊的為較大的數。

使用方法:

標頭檔案:

#include 

宣告方式:

1、普通方法:

priority_queueq;

//通過操作,按照元素從大到小的順序出隊

2、自定義優先順序:

[cpp]view plain

copy

struct

cmp  

};  

priority_queue, vector<

int>, cmp>q;

//定義方法

[cpp]view plain

copy

//其中,第二個引數為容器型別。第三個引數為比較函式。

3、結構體宣告方式:

[cpp]view plain

copy

struct

node  

};  

priority_queueq;

//定義方法

//在該結構中,y為值, x為優先順序。

//通過自定義operator《操作符來比較元素中的優先順序。

//在過載」<」時,最好不要過載」>」,可能會發生編譯錯誤

stl 中佇列的使用(queue)

基本操作:

push(x) 將x壓入佇列的末端

pop() 彈出佇列的第乙個元素(隊頂元素),注意此函式並不返回任何值

front() 返回第乙個元素(隊頂元素)

back() 返回最後被壓入的元素(隊尾元素)

empty() 當隊列為空時,返回true

size() 返回佇列的長度

使用方法:

標頭檔案:

#include 

宣告方法:

1、普通宣告

queueq;

2、結構體

struct node

;queueq;

stl 中棧的使用方法(stack)

基本操作:

push(x) 將x加入棧中,即入棧操作

pop() 出棧操作(刪除棧頂),只是出棧,沒有返回值

top() 返回第乙個元素(棧頂元素)

size() 返回棧中的元素個數

empty() 當棧為空時,返回 true

使用方法:

和佇列差不多,其中標頭檔案為:

#include 

定義方法為:

stacks1;//入棧元素為 int 型

stacks2;// 入隊元素為string型

stacks3;//入隊元素為自定義型

[cpp]view plain

copy

/**/

/**************************************

|                                   |

|       stl中優先佇列使用方法       |

|                                   |        

|       chenlie                     |

|                                   |

|       2010-3-24                   |

|                                   |

*************************************

*/#include 

#include 

#include 

using

namespace

std;  

intc[100];  

struct

cmp1  

};  

struct

cmp2  

};  

struct

node  

};  

priority_queue>q1;  

priority_queue, vector<

int>, cmp1>q2;  

priority_queue, vector<

int>, cmp2>q3;  

priority_queueq4;  

queue>qq1;  

queueqq2;  

intmain()  

cout << endl;  

while

(!q4.empty())  

//    cout << endl;

}  return

0;  

}  

[cpp]view plain

copy

#include

#include

#include

using

namespace

std;  

struct

comp  

};  

priority_queue,vector<

int>,comp>q;

/*優先佇列*/

intmain()  

printf("\n"

);  

return

0;  

}  

C STL之優先佇列

首先先講一下仿函式 可能你看了以後也還是不太明白它到底是幹什麼的,怎麼作用的,那麼我就來簡單講一下 仿函式就是帶有乙個或多個過載小括號的成員函式的乙個結構體或類,又叫做仿函式類 仿函式類既可以當函式用,又可以當結構體用,好處是這樣就可以通過傳遞模板類來給stl傳遞乙個你寫的函式 如下 include...

C STL優先佇列

q.empty 如果隊列為空,則返回true,否則返回false q.size 返回佇列中元素的個數 q.pop 刪除隊首元素,但不返回其值 q.top 返回具有最高優先順序的元素值,但不刪除該元素 q.push item 在基於優先順序的適當位置插入新元素template class t clas...

c stl之佇列 棧 與優先佇列

棧 棧是先入後出,後入先出 有push 和pop 兩種操作 使用時定義是stacks top 操作是取棧頂的元素 但是不去刪除 在集合計算機的問題中的一段code 解釋 if idcache.cout x return idcache x 是如若找到集合x就返回他的id 佇列 佇列是 先如先出的 就...