00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00016
00017 template <class K, class V, class C>
00018 inline CTBmap<K,V,C>::CTBmap()
00019 {}
00020
00021
00023
00029 template <class K, class V, class C>
00030 inline CTBmap<K,V,C>::~CTBmap()
00031 {}
00032
00033
00035
00036 template <class K, class V, class C>
00037 inline CTBmap<K,V,C>::CTBmap(const CTBmap<K,V,C>&)
00038 {}
00039
00040
00042
00043 template <class K, class V, class C>
00044 inline CTBmapIterator<K,V,C> CTBmap<K,V,C>::FindLessEqual(const K& key,
00045 bool& b_found)
00046 {
00047 return Iterator((Map*) this, LocateMatchOrPrev(key,b_found));
00048 }
00049
00050
00052
00053 template <class K, class V, class C>
00054 inline CTBmapBrowser<K,V,C> CTBmap<K,V,C>::FindLessEqual(const K& key,
00055 bool& b_found) const
00056 {
00057 return Browser((Map*) this, LocateMatchOrPrev(key,b_found));
00058 }
00059
00060
00062
00063 template <class K, class V, class C>
00064 inline CTBmapIterator<K,V,C> CTBmap<K,V,C>::FindGreaterEqual(const K& key,
00065 bool& b_found)
00066 {
00067 return Iterator((Map*) this, LocateMatchOrNext(key,b_found));
00068 }
00069
00070
00072
00073 template <class K, class V, class C>
00074 inline CTBmapBrowser<K,V,C> CTBmap<K,V,C>::FindGreaterEqual(const K& key,
00075 bool& b_found) const
00076 {
00077 return Browser((Map*) this, LocateMatchOrNext(key,b_found));
00078 }
00079
00080
00082
00083 template <class K, class V, class C>
00084 inline CTBmapIterator<K,V,C> CTBmap<K,V,C>::First()
00085 {
00086 return Iterator((Map*) this, (Node*) CTBbtree::First());
00087 }
00088
00089
00091
00092 template <class K, class V, class C>
00093 inline CTBmapBrowser<K,V,C> CTBmap<K,V,C>::First() const
00094 {
00095 return Browser((Map*) this, (Node*) CTBbtree::First());
00096 }
00097
00098
00100
00101 template <class K, class V, class C>
00102 inline CTBmapIterator<K,V,C> CTBmap<K,V,C>::Last()
00103 {
00104 return Iterator((Map*) this, (Node*) CTBbtree::Last());
00105 }
00106
00107
00109
00110 template <class K, class V, class C>
00111 inline CTBmapBrowser<K,V,C> CTBmap<K,V,C>::Last() const
00112 {
00113 return Browser((Map*) this, (Node*) CTBbtree::Last());
00114 }
00115
00116
00118
00119 template <class K, class V, class C>
00120 inline CTBint CTBmap<K,V,C>::Size() const
00121 {
00122 return CTBbtree::Size();
00123 }
00124
00125
00127
00128 template <class K, class V, class C>
00129 inline void CTBmap<K,V,C>::Dump(int i_indent, ostream& os,
00130 const char* p_text) const
00131 {
00132 CTBbtree::Dump(i_indent,os,p_text);
00133 return;
00134 }
00135
00136
00138
00143 template <class K, class V, class C>
00144 inline V& CTBmap<K,V,C>::operator[](const K& key)
00145 {
00146 bool b_found;
00147 return FindOrCreate(key,b_found).Value();
00148 }
00149
00150
00152
00153 template <class K, class V, class C>
00154 inline CTBmap<K,V,C>& CTBmap<K,V,C>::operator=(const CTBmap<K,V,C>& rhs)
00155 {
00156 CTBbtree::operator=(rhs);
00157 return *this;
00158 }
00159
00160
00162
00163 template <class K, class V, class C>
00164 inline CTBmap<K,V,C>::operator bool() const
00165 {
00166 return CTBbtree::Size() > 0;
00167 }
00168
00169
00171
00177 template <class K, class V, class C>
00178 inline void CTBmap<K,V,C>::InsertNode(CTBmapNode<K,V,C>* p_node,
00179 CTBmapNode<K,V,C>* p_parent, int i_ctype)
00180 {
00181 p_node->Insert(*this,p_parent,i_ctype);
00182 return;
00183 }
00184
00185
00187
00188 template <class K, class V, class C>
00189 inline void CTBmap<K,V,C>::RemoveNode(CTBmapNode<K,V,C>* p_node)
00190 {
00191 p_node->Remove();
00192 return;
00193 }
00194