34 void operator =(
void *
v) { value =
v; }
45 , parent(
p),left(0),right(0)
92 operator bool()
const {
return map && ix < map->n; }
95 void *
data()
const {
return map->data[ix].value; }
96 size_t key()
const {
return map->data[ix].key; }
98 iterator &operator ++() { forward();
return *
this; }
105 while((
nmap = map->left) != 0) map =
nmap;
122 (left = _newmap(
this))->_init(
k,
t);
132 (right = _newmap(
this))->_init(
k,
t);
140 void *_set(
int tsize,
size_t k,
void *
t);
141 void *_find(
int tsize,
size_t k)
const;
142 void *_remove(
int tsize,
size_t k);
156 unsigned int ix = 0,
b = n;
158 const unsigned int c = (ix+
b)>>1;
159 const size_t dk = data[
c].
key;
180 void _getsmall(Data &
dt);
181 void _getbig(Data &
dt);
189template <
typename K,
typename T,
int N = 8>
192#if (defined(_MSC_VER) && _MSC_VER < 1300) || defined(__BORLANDC__) || defined(__MWERKS__)
void * data() const
Definition flmap.h:95
void leftmost()
Definition flmap.h:101
iterator()
Definition flmap.h:86
const TableAnyMap * map
Definition flmap.h:111
size_t key() const
Definition flmap.h:96
iterator(const TableAnyMap &m)
Definition flmap.h:87
iterator(const iterator &it)
Definition flmap.h:88
int ix
Definition flmap.h:112
void * remove(int tsize, size_t k)
Definition flmap.h:74
void * _toleft(int tsize, size_t k, void *t)
Definition flmap.h:117
virtual void _delmap(TableAnyMap *map)=0
void _init(size_t k, void *t)
Definition flmap.h:115
TableAnyMap(const TableAnyMap &)
Definition flmap.h:185
void _eraseempty(TableAnyMap *&b)
Definition flmap.h:172
int n
Definition flmap.h:150
void * _toright(int tsize, Data &v)
Definition flmap.h:138
void * _toleft(int tsize, Data &v)
Definition flmap.h:137
TableAnyMap * left
Definition flmap.h:149
void * _toright(int tsize, size_t k, void *t)
Definition flmap.h:127
Data * data
Definition flmap.h:148
unsigned int _tryix(size_t k) const
Definition flmap.h:154
void * insert(int tsize, size_t k, void *t)
Definition flmap.h:59
virtual TableAnyMap * _newmap(TableAnyMap *parent)=0
void * find(int tsize, size_t k) const
Definition flmap.h:72
TableAnyMap(TableAnyMap *p, Data *dt)
Definition flmap.h:43
virtual void clear()
Definition flmap.cpp:23
iterator & operator=(const iterator &it)
Definition flmap.h:232
iterator & operator++()
Definition flmap.h:238
iterator(const TablePtrMap &m)
Definition flmap.h:227
iterator()
Definition flmap.h:226
T data() const
Definition flmap.h:235
iterator(const iterator &it)
Definition flmap.h:228
K key() const
Definition flmap.h:236
virtual void clear()
Definition flmap.h:201
T insert(K k, T t)
Definition flmap.h:205
TablePtrMap(const TableAnyMap &p)
Definition flmap.h:251
int count
Definition flmap.h:247
T find(K k) const
Definition flmap.h:212
Data slots[N]
Definition flmap.h:248
T remove(K k)
Definition flmap.h:214
virtual ~TablePtrMap()
Definition flmap.h:199
int size() const
Definition flmap.h:203
TablePtrMap()
Definition flmap.h:198
virtual void _delmap(TableAnyMap *map)
Definition flmap.h:245
virtual TableAnyMap * _newmap(TableAnyMap *_parent)
Definition flmap.h:244
TablePtrMap(TableAnyMap *p)
Definition flmap.h:242
Try to find out the platform.
#define FLEXT_TEMPINST(fun)
Definition flprefix.h:455
#define LIKELY(expression)
Definition flprefix.h:438
#define FLEXT_SHARE
Definition flprefix.h:416
#define FLEXT_TEMPLATE
Definition flprefix.h:453
#define FLEXT_UNUSED(x)
Definition flstdc.h:302
#define FLEXT_CAST
Switch for compilation of derived virtual classes.
Definition fldefs.h:27
void * value
Definition flmap.h:37
size_t key
Definition flmap.h:36
void operator()(size_t k, void *v)
Definition flmap.h:33