大小堆,棧,佇列,vector點點滴滴的總結

2021-09-27 00:01:37 字數 1177 閱讀 8064

#include

#include

using

namespace std;

**priority_queue<

int,vector<

int>

,greater<

int>

> q;**

//c++內建stl的排序按top為min 同理less

int n,num;

int a[

10100];

intmain

(int argc,

char

** ar**)

while

(q.size()

>2)

num+

=q.top()

; q.

pop();

cout

)

(stdin);

fclose

(stdout);

return0;

}//![在這裡插入描述](https://

img-blog.csdnimg.cn/2019092420272485.jpg?x-oss-process=image/watermark,type_zmfuz3pozw5na**pdgk,shadow_10,text_ahr0chm6ly9ibg9nlmnzzg4ubmv0l3fxxzqwndkzodi5,size_16,color_ffffff,t_70)

priority_queue<

int,vector<

int>

,less> q;

只能乙個乙個放數

加上過載運算子是不是可以放陣列或其他的東西呢???

我們知道小堆是靠bool判斷的

所以只要過載下bool

struct cmp

{ bool

operator()(int x,int y)

{return dis[x]

>dis[y]

;//大根堆頭最小}};

//寫

文章自動忽略空格?

堆變成

priority_queue<

int,vector<

int>

,cmp> q;

vector 的點點滴滴的總結

vector 廣義上講 乙個動態的陣列 但因為又自帶支援多種操作所以比較好用。vector實際分配的記憶體比你需要的記憶體多。include vector 變數型別 變數名 一維vector vector int v m,vector int n m n二維記得要打空格陣列可以對vector進行初始...

vector 堆 棧 佇列的使用

最近由於在刷劍指offer,所以頻繁接觸vector,之前也沒有好好學,所以把一些學到的東西記錄下來,以供自己複習,當然能幫到別人就最好不過了。vector有很多好處,首先就是它是動態的,能改變大小,而且能存放各種型別的資料,還可以在尾部新增值,類似於鍊錶的特性,簡單來說,vector是乙個能存放任...

堆的實現(大小堆及 優先佇列

一 堆的概念 堆資料結構是一種陣列物件,它可以被視為一棵完全二叉樹結構。堆結構的二叉樹儲存是 最大堆 每個父節點的都大於孩子節點。最小堆 每個父節點的都小於孩子節點。堆疊中的物體具有乙個特性 最後乙個放入堆疊中的物體總是被最先拿出來,這個特性通常稱為後進先出 lifo 佇列。堆疊中定義了一些操作。兩...