tesseract v5.3.3.20231005
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}
int value

◆ 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: