25 size_t maxElms()
const {
return maxElms_; }
28 bool empty()
const {
return heap_.empty(); }
31 size_t size()
const {
return heap_.size(); }
37 const std::vector<T> &
get()
const {
return heap_; }
40 const T &
top()
const { assert( !heap_.empty() );
return heap_.front(); }
43 const T &
topOr(
const T & emptyRes )
const {
return !heap_.empty() ? heap_.front() : emptyRes; }
60 heap_.reserve( maxElms );
67 assert( heap_.size() <= maxElms() );
68 if ( heap_.size() == maxElms() )
70 if ( t < heap_.front() )
72 std::pop_heap( heap_.begin(), heap_.end() );
73 assert( t < heap_.back() );
74 heap_.back() = std::move( t );
75 std::push_heap( heap_.begin(), heap_.end() );
79 heap_.push_back( std::move( t ) );
80 std::push_heap( heap_.begin(), heap_.end() );
the class stores some number of smallest elements from a larger number of candidates
Definition MRFewSmallest.h:14
void push(T t)
considers one more element, storing it if it is within the smallest
Definition MRFewSmallest.h:65
FewSmallest(size_t maxElms)
configure the object to store at most given number of elements
Definition MRFewSmallest.h:19
const T & top() const
returns the largest among stored smallest elements
Definition MRFewSmallest.h:40
void reset(size_t maxElms)
clears the content and reconfigure the object to store at most given number of elements
Definition MRFewSmallest.h:57
const T & topOr(const T &emptyRes) const
returns the largest among stored smallest elements or given element if this is empty
Definition MRFewSmallest.h:43
bool empty() const
returns whether the container is currently empty
Definition MRFewSmallest.h:28
const std::vector< T > & get() const
returns the smallest elements found so far
Definition MRFewSmallest.h:37
size_t maxElms() const
returns the maximum number of elements to be stored here
Definition MRFewSmallest.h:25
size_t size() const
returns current number of stored element
Definition MRFewSmallest.h:31
bool full() const
returns whether we have already maximum number of elements stored
Definition MRFewSmallest.h:34
void clear()
removes all stored elements
Definition MRFewSmallest.h:49
FewSmallest()
Definition MRFewSmallest.h:16
Definition MRCameraOrientationPlugin.h:8