直接上代码,很好理解
#include<iostream>
#include<vector>
#include<assert.h>
using namespace std;
template<class T>
class Greater
{
public:
bool operator()(const T&left, const T&right) const
{
return left > right;
}
};
template<class T>
class Less
{
public:
bool operator()(const T&left, const T&right ) const
{
return left < right;
}
};
///////////////////////////////////////////////////
//template<class T,class Compare>
//class Heap
//{
//public:
// Heap(){}
// Heap(const T* arr, size_t size)
// {
// assert(arr);
// for (size_t i = 0; i < size; ++i)
// {
// _heap.push_back(arr[i]);
// }
// size_t root = _heap.size() / 2 - 1;
// for (int i = root; i >= 0; --i)
// {
// _adjustDown(i);
// }
// }
//
// size_t Size()
// {
// return _heap.size();
// }
//
// bool Empty()
// {
// if (_heap.size())
// return 1;
// return 0;