TPIE

2362a60
tpie::ami::merge_heap_op< REC, comp_t > Class Template Reference

A merge heap object base class - also serves as the full implementation for objects with a < comparison operator. More...

#include <tpie/mergeheap.h>

Public Member Functions

 merge_heap_op (comp_t c=comp_t())
 
size_t sizeofheap ()
 Reports the size of Heap (number of elements). More...
 
size_t get_min_run_id ()
 Returns the run with the minimum key. More...
 
void allocate (size_t size)
 Allocates space for the heap. More...
 
void insert (const REC *ptr, size_t run_id)
 Copies an (initial) element into the heap array/. More...
 
void extract_min (REC &el, size_t &run_id)
 Extracts minimum element from heap array. More...
 
void deallocate ()
 Deallocates the space used by the heap. More...
 
void initialize (void)
 Heapifies an initial array of elements. More...
 
void delete_min_and_insert (const REC *nextelement_same_run)
 
size_t space_per_item (void)
 Returns the main memory space usage per item. More...
 
size_t space_overhead (void)
 Returns the fixed main memory space overhead, regardless of item count. More...
 

Detailed Description

template<class REC, class comp_t = std::less<REC>>
class tpie::ami::merge_heap_op< REC, comp_t >

A merge heap object base class - also serves as the full implementation for objects with a < comparison operator.

Definition at line 166 of file mergeheap.h.

Member Function Documentation

template<class REC, class comp_t = std::less<REC>>
void tpie::ami::merge_heap_op< REC, comp_t >::allocate ( size_t  size)
inline

Allocates space for the heap.

Definition at line 194 of file mergeheap.h.

194 {pq.resize(size);}
template<class REC, class comp_t = std::less<REC>>
void tpie::ami::merge_heap_op< REC, comp_t >::deallocate ( void  )
inline

Deallocates the space used by the heap.

Definition at line 215 of file mergeheap.h.

215 {pq.resize(0);}
template<class REC, class comp_t = std::less<REC>>
void tpie::ami::merge_heap_op< REC, comp_t >::extract_min ( REC &  el,
size_t &  run_id 
)
inline

Extracts minimum element from heap array.

If you follow this with an immediate insert, consider using delete_min_and_insert().

Definition at line 206 of file mergeheap.h.

206  {
207  el=pq.top().key;
208  run_id=pq.top().run_id;
209  pq.pop();
210  }
template<class REC, class comp_t = std::less<REC>>
size_t tpie::ami::merge_heap_op< REC, comp_t >::get_min_run_id ( )
inline

Returns the run with the minimum key.

Definition at line 189 of file mergeheap.h.

189 {return pq.top().run_id;};
template<class REC, class comp_t = std::less<REC>>
void tpie::ami::merge_heap_op< REC, comp_t >::initialize ( void  )
inline

Heapifies an initial array of elements.

Definition at line 220 of file mergeheap.h.

220 {pq.make_safe();}
template<class REC, class comp_t = std::less<REC>>
void tpie::ami::merge_heap_op< REC, comp_t >::insert ( const REC *  ptr,
size_t  run_id 
)
inline

Copies an (initial) element into the heap array/.

Definition at line 199 of file mergeheap.h.

199 {pq.unsafe_push(heap_element<REC>(*ptr, run_id));}
template<class REC, class comp_t = std::less<REC>>
size_t tpie::ami::merge_heap_op< REC, comp_t >::sizeofheap ( )
inline

Reports the size of Heap (number of elements).

Definition at line 184 of file mergeheap.h.

184 {return pq.size();}
template<class REC, class comp_t = std::less<REC>>
size_t tpie::ami::merge_heap_op< REC, comp_t >::space_overhead ( void  )
inline

Returns the fixed main memory space overhead, regardless of item count.

Definition at line 241 of file mergeheap.h.

241 {return static_cast<size_t>(pq.memory_overhead());}
template<class REC, class comp_t = std::less<REC>>
size_t tpie::ami::merge_heap_op< REC, comp_t >::space_per_item ( void  )
inline

Returns the main memory space usage per item.

Definition at line 236 of file mergeheap.h.

236 {return static_cast<size_t>(pq.memory_coefficient());}

The documentation for this class was generated from the following file: