29 #ifndef __FASTJET_MINHEAP__HH__
30 #define __FASTJET_MINHEAP__HH__
36 #include "fastjet/internal/base.hh"
38 FASTJET_BEGIN_NAMESPACE
51 MinHeap (
const std::vector<double> & values,
unsigned int max_size) :
52 _heap(max_size) {_initialise(values);};
55 MinHeap (
const std::vector<double> & values) :
56 _heap(values.size()) {_initialise(values);};
59 inline unsigned int minloc()
const {
60 return (_heap[0].minloc) - &(_heap[0]);};
63 inline double minval()
const {
return _heap[0].minloc->value;};
65 inline double operator[](
int i)
const {
return _heap[i].value;};
69 void remove(
unsigned int loc) {
70 update(loc,std::numeric_limits<double>::max());};
73 void update(
unsigned int,
double);
82 std::vector<ValueLoc> _heap;
84 void _initialise(
const std::vector<double> & values);
92 #endif // __FASTJET_MINHEAP__HH__