aGrUM  0.20.3
a C++ library for (probabilistic) graphical models

An implementation of heaps. More...

+ Collaboration diagram for Heaps:

Detailed Description

An implementation of heaps.

This file provides class Heap that implements a classic heap. Elements are sorted according to a weak order which is < by default, i.e., the top element of the heap is the smallest element and the more to the bottom the greater the element.

Usage example:
// create a heap of integers, the top element is the smallest element
Heap<int> heap1;
// create a heap of floats, the top element is the greatest
Heap< float,std::greater<float> > heap2;
// insert elements into the heap
heap1.insert (8);
heap1.insert (10);
heap1.insert (2);
heap1.insert (23);
heap1.insert (24);
heap1.insert (10);
heap1.insert (10);
// copy a heap into another heap
Heap<int> heap2 = heap1;
// get the number of elements of the heap
std::cerr << heap2.size() << std::endl;
// get the top element but do not remove it
std::cerr << heap2.top() << std::endl;
// get and remove the top element of the heap
std::cerr << heap2.pop() << std::endl;
// remove the top element but do not return it (faster than above)
heap2.eraseTop();
// erase in heap1 value 8
heap1.eraseByVal (8);
// erase element at position 3 (see function erase for the meaning of
// position 3)
heap1.erase (3);
// get the element at position 3
heap1[3];
// check whether element 24 belongs to the heap
heap1.contains (24);

Classes

class  gum::Heap< Val, Cmp, Alloc >
 Heap data structureThis structure is a basic heap data structure, i.e., it is a container in which elements are sorted according to a weak ordering. More...