tesseract  5.0.0
tesseract::MinK< Key, Value > Class Template Reference

Classes

struct  Element
 

Public Member Functions

 MinK (Key max_key, int k)
 
 ~MinK ()
 
bool insert (Key k, Value v)
 
const Key & max_insertable_key ()
 
int elements_count ()
 
const Elementelements ()
 

Detailed Description

template<typename Key, typename Value>
class tesseract::MinK< Key, Value >

Store the k smallest-keyed key-value pairs.

Definition at line 53 of file kdtree.cpp.

Constructor & Destructor Documentation

◆ MinK()

template<typename Key , typename Value >
tesseract::MinK< Key, Value >::MinK ( Key  max_key,
int  k 
)

Definition at line 85 of file kdtree.cpp.

86  : max_key_(max_key), elements_count_(0), k_(k < 1 ? 1 : k), max_index_(0) {
87  elements_ = new Element[k_];
88 }

◆ ~MinK()

template<typename Key , typename Value >
tesseract::MinK< Key, Value >::~MinK

Definition at line 91 of file kdtree.cpp.

91  {
92  delete[] elements_;
93 }

Member Function Documentation

◆ elements()

template<typename Key , typename Value >
const Element* tesseract::MinK< Key, Value >::elements ( )
inline

Definition at line 72 of file kdtree.cpp.

72  {
73  return elements_;
74  }

◆ elements_count()

template<typename Key , typename Value >
int tesseract::MinK< Key, Value >::elements_count ( )
inline

Definition at line 69 of file kdtree.cpp.

69  {
70  return elements_count_;
71  }

◆ insert()

template<typename Key , typename Value >
bool tesseract::MinK< Key, Value >::insert ( Key  k,
Value  v 
)

Definition at line 104 of file kdtree.cpp.

104  {
105  if (elements_count_ < k_) {
106  elements_[elements_count_++] = Element(key, value);
107  if (key > elements_[max_index_].key) {
108  max_index_ = elements_count_ - 1;
109  }
110  return true;
111  } else if (key < elements_[max_index_].key) {
112  // evict the largest element.
113  elements_[max_index_] = Element(key, value);
114  // recompute max_index_
115  for (int i = 0; i < elements_count_; i++) {
116  if (elements_[i].key > elements_[max_index_].key) {
117  max_index_ = i;
118  }
119  }
120  return true;
121  }
122  return false;
123 }

◆ max_insertable_key()

template<typename Key , typename Value >
const Key & tesseract::MinK< Key, Value >::max_insertable_key

Definition at line 96 of file kdtree.cpp.

96  {
97  if (elements_count_ < k_) {
98  return max_key_;
99  }
100  return elements_[max_index_].key;
101 }

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