堆,堆在C 中用法

2021-08-21 04:41:47 字數 1049 閱讀 1797

堆有最大堆與最小堆,也有對應的pushpop操作。在最大堆中,最大的元素在堆頂,pop會將最大的元素推出, 最小堆則反之。

c++中的堆,要基於向量使用。操作基於三個函式std::make_heapstd::push_heapstd::pop_heap,並且要配合push_backpop_back使用。需要#include

#include 

using

namespace

std;

vector

v;make_heap(v.begin(),v.end()); // 將vector轉化為堆,預設為最大堆

v.push_back(99);

push_heap(v.begin(),v.end()); // 新元素先推入向量,再推入堆

pop_heap(v.begin(),v.end());

v.pop_back(); // 先推出堆,再推出向量

cout

<< v.front() << endl; // 堆頂元素用v.front()訪問

值得注意的是最小堆的使用,初始化堆加入第三項make_heap(v.begin(),v.end(), greater());。不僅如此, 在push和pop的操作中也要加入greater()

vector

v;make_heap(v.begin(),v.end(), greater());

v.push_back(99);

push_heap(v.begin(),v.end()), greater();

pop_heap(v.begin(),v.end(), greater());

v.pop_back();

return false 在js中用法

昨天是週六,因為客戶頻繁的改需求,沒辦法主動加班去。昨天也有乙個很大收穫,下面開始正題。首先在js中,我們常用return false來阻止提交表單或者繼續執行下面的 通俗的來說就是阻止執行預設的行為。function a 這是沒有任何問題的。如果我改成這種 function test a b c ...

C語言巨集定義中 用法

c語言巨集定義中 用法 巨集中 和 的用法 一 一般用法 我們使用 把巨集引數變為乙個字串,用 把兩個巨集引數貼合在一起.用法 i nclude i nclude using namespace std define str s s define cons a,b int a e b int mai...

在c 中用while(cin)的問題

xp系統中利用dev cpp進行程式設計,語句while cin str str是個string型別,在一行中輸入幾個string,末位加個ctrl z,輸入沒有結束,除非出入換行後,再輸入ctrl z才能跳出輸入。一直不明白未什麼,解釋請看下。輸入緩衝是行緩衝。當從鍵盤上輸入一串字元並按回車後,這...