00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00016
00017 template <class K, class V, class C, class T, class AK, class AV>
00018 inline CTBgset<K,V,C,T,AK,AV>::CTBgset()
00019 {}
00020
00021
00023
00029 template <class K, class V, class C, class T, class AK, class AV>
00030 inline CTBgset<K,V,C,T,AK,AV>::~CTBgset()
00031 {}
00032
00033
00035
00036 template <class K, class V, class C, class T, class AK, class AV>
00037 inline CTBgset<K,V,C,T,AK,AV>::CTBgset(const CTBgset<K,V,C,T,AK,AV>&)
00038 {}
00039
00040
00042
00043 template <class K, class V, class C, class T, class AK, class AV>
00044 inline CTBgsetIterator<K,V,C,T,AK,AV> CTBgset<K,V,C,T,AK,AV>::FindLessEqual(
00045 const K& key, bool& b_found)
00046 {
00047 return Iterator((Gset*) this, LocateMatchOrPrev(key,b_found));
00048 }
00049
00050
00052
00053 template <class K, class V, class C, class T, class AK, class AV>
00054 inline CTBgsetBrowser<K,V,C,T,AK,AV> CTBgset<K,V,C,T,AK,AV>::FindLessEqual(
00055 const K& key, bool& b_found) const
00056 {
00057 return Browser((Gset*) this, LocateMatchOrPrev(key,b_found));
00058 }
00059
00060
00062
00063 template <class K, class V, class C, class T, class AK, class AV>
00064 inline CTBgsetIterator<K,V,C,T,AK,AV> CTBgset<K,V,C,T,AK,AV>::FindGreaterEqual(
00065 const K& key, bool& b_found)
00066 {
00067 return Iterator((Gset*) this, LocateMatchOrNext(key,b_found));
00068 }
00069
00070
00072
00073 template <class K, class V, class C, class T, class AK, class AV>
00074 inline CTBgsetBrowser<K,V,C,T,AK,AV> CTBgset<K,V,C,T,AK,AV>::FindGreaterEqual(
00075 const K& key, bool& b_found) const
00076 {
00077 return Browser((Gset*) this, LocateMatchOrNext(key,b_found));
00078 }
00079
00080
00082
00083 template <class K, class V, class C, class T, class AK, class AV>
00084 inline CTBgsetIterator<K,V,C,T,AK,AV> CTBgset<K,V,C,T,AK,AV>::First()
00085 {
00086 return Iterator((Gset*) this, (Node*) CTBbtree::First());
00087 }
00088
00089
00091
00092 template <class K, class V, class C, class T, class AK, class AV>
00093 inline CTBgsetBrowser<K,V,C,T,AK,AV> CTBgset<K,V,C,T,AK,AV>::First() const
00094 {
00095 return Browser((Gset*) this, (Node*) CTBbtree::First());
00096 }
00097
00098
00100
00101 template <class K, class V, class C, class T, class AK, class AV>
00102 inline CTBgsetIterator<K,V,C,T,AK,AV> CTBgset<K,V,C,T,AK,AV>::Last()
00103 {
00104 return Iterator((Gset*) this, (Node*) CTBbtree::Last());
00105 }
00106
00107
00109
00110 template <class K, class V, class C, class T, class AK, class AV>
00111 inline CTBgsetBrowser<K,V,C,T,AK,AV> CTBgset<K,V,C,T,AK,AV>::Last() const
00112 {
00113 return Browser((Gset*) this, (Node*) CTBbtree::Last());
00114 }
00115
00116
00118
00119 template <class K, class V, class C, class T, class AK, class AV>
00120 inline CTBint CTBgset<K,V,C,T,AK,AV>::Size() const
00121 {
00122 return CTBbtree::Size();
00123 }
00124
00125
00127
00128 template <class K, class V, class C, class T, class AK, class AV>
00129 inline void CTBgset<K,V,C,T,AK,AV>::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
00139 template <class K, class V, class C, class T, class AK, class AV>
00140 inline CTBgset<K,V,C,T,AK,AV>& CTBgset<K,V,C,T,AK,AV>::operator=(
00141 const CTBgset<K,V,C,T,AK,AV>& rhs)
00142 {
00143 CTBbtree::operator=(rhs);
00144 return *this;
00145 }
00146
00147
00149
00150 template <class K, class V, class C, class T, class AK, class AV>
00151 inline CTBgset<K,V,C,T,AK,AV>::operator bool() const
00152 {
00153 return CTBbtree::Size() > 0;
00154 }
00155
00156
00158
00164 template <class K, class V, class C, class T, class AK, class AV>
00165 inline void CTBgset<K,V,C,T,AK,AV>::InsertNode(
00166 CTBgsetNode<K,V,C,T,AK,AV>* p_node,
00167 CTBgsetNode<K,V,C,T,AK,AV>* p_parent,
00168 int i_ctype)
00169 {
00170 p_node->Insert(*this,p_parent,i_ctype);
00171 return;
00172 }
00173
00174
00176
00177 template <class K, class V, class C, class T, class AK, class AV>
00178 inline void CTBgset<K,V,C,T,AK,AV>::RemoveNode(
00179 CTBgsetNode<K,V,C,T,AK,AV>* p_node)
00180 {
00181 p_node->Remove();
00182 return;
00183 }
00184