NVBIO
|
#include <algorithm>
#include <iterator>
Go to the source code of this file.
Namespaces | |
boost | |
boost::heap | |
boost::heap::interval_heap_internal | |
Functions | |
template<typename Iterator , typename Compare > | |
void | boost::heap::make_interval_heap (Iterator first, Iterator last, Compare compare) |
Moves elements in [first,last) to form an interval heap. More... | |
template<typename Iterator , typename Compare = std::less<typename std::iterator_traits<Iterator>::value_type>> | |
void | boost::heap::push_interval_heap (Iterator first, Iterator last, Compare compare) |
Expands the interval heap to include the element at last-1. More... | |
template<typename Iterator , typename Compare > | |
void | boost::heap::update_interval_heap (Iterator first, Iterator last, typename std::iterator_traits< Iterator >::difference_type index, Compare compare) |
Restores the interval-heap property if one element violates it. More... | |
template<typename Iterator , typename Compare > | |
void | boost::heap::sort_interval_heap (Iterator first, Iterator last, Compare compare) |
Sorts an interval heap in ascending order. More... | |
template<typename Iterator , typename Compare > | |
Iterator | boost::heap::is_interval_heap_until (Iterator first, Iterator last, Compare compare) |
Finds the largest subrange that qualifies as an interval heap. More... | |
template<typename Iterator , typename Compare > | |
bool | boost::heap::is_interval_heap (Iterator first, Iterator last, Compare compare) |
Checks whether the range is an interval heap. More... | |
template<typename Iterator , typename Compare > | |
void | boost::heap::interval_heap_internal::sift_leaf (Iterator first, Iterator last, typename std::iterator_traits< Iterator >::difference_type index, Compare compare) |
Restores the interval-heap property if one leaf element violates it. More... | |
template<bool left_bound, typename Iterator , typename Offset , typename Compare > | |
void | boost::heap::interval_heap_internal::sift_up (Iterator first, Offset index, Compare compare, Offset limit_child) |
Moves an element up the interval heap. More... | |
template<typename Iterator , typename Offset , typename Compare > | |
void | boost::heap::interval_heap_internal::sift_leaf_max (Iterator first, Iterator last, Offset index, Compare compare, Offset limit_child) |
Moves an element between min/max bounds, and up the interval heap. More... | |
template<typename Iterator , typename Offset , typename Compare > | |
void | boost::heap::interval_heap_internal::sift_leaf_min (Iterator first, Iterator last, Offset index, Compare compare, Offset limit_child) |
Moves an element between min/max bounds, and up the interval heap. More... | |
template<bool left_bound, typename Iterator , typename Offset , typename Compare > | |
void | boost::heap::interval_heap_internal::sift_down (Iterator first, Iterator last, Offset index, Compare compare, Offset limit_child) |
Restores the interval-heap property if one element violates it. More... | |
template<typename Iterator , typename Compare > | |
void | boost::heap::pop_interval_heap_min (Iterator first, Iterator last, Compare compare) |
Moves a minimal element to the back of the range for popping. More... | |
template<typename Iterator , typename Compare > | |
void | boost::heap::pop_interval_heap_max (Iterator first, Iterator last, Compare compare) |
Moves a maximal element to the back of the range for popping. More... | |
template<typename Iterator , typename Compare > | |
void | boost::heap::pop_interval_heap (Iterator first, Iterator last, typename std::iterator_traits< Iterator >::difference_type index, Compare compare) |
Moves an element to the back of the range for popping. More... | |
interval_heap.hpp provides functions for creating interval heaps by rearranging a range of elements. A valid interval heap has the following properties: Given elements A and B, A is less than B iff compare(A,B), where compare is a binary functor describing a strict weak ordering. Left and right bounds are those with even and odd indices, respectively. A right bound is never less than its corresponding left bound. A left bound is never less than the left bound of its parent. A right bound is never less than the right bounds of its children.
Definition in file interval_heap.hpp.