template <typename T, int N> XItemPtrArray
Inherited from NULL
Inherited by NULL
Friend class NULL
Description
XItemPtrArray封装了按固定大小N增长的对象指针数组,它一般用于在数组长度不是很大的场合,便于直接从内存池中分配,可以避免程序运行中频繁分配释放数组时产生的内存碎片,同时保证数据访问性能。它的容量为N的整数倍,增加数组对象指针时直接在数组的内存空间中赋值,当对象的个数超过容量时,将数组的容量增长N重新从内存池中申请空间并将旧的空间的值全部拷贝到新的内存空间中,然后将旧的空间放回到内存池中;删除对象指针时将该对象后面的数据向前挪动一个对象的长度,如果剩余容量小于N,将数组的容量较少N重新从内存池中申请空间并将旧的空间的值全部拷贝到新的内存空间中,然后将旧的空间放回到内存池中。
Members
Private interface
-
void
assign(XMemPool * mem, const T ** item, int cnt)
void
add(XMemPool * mem, const T * item)
void
remove(XMemPool * mem, const T * item)
void
remove(XMemPool * mem, int i)
-
int
find(const T * item) const
const T *
at(int index) const
-
void
clear(XMemPool * mem)
int iItemCount
对象指针个数
const T ** pItemPtrArray
对象指针数组首地址
XItemPtrArray()
function: 构造函数
parameters: NULL
return value: 无
void assign(XMemPool * mem, const T ** item, int cnt)
void add(XMemPool * mem, const T * item)
function: 添加对象指针
parameters:
[i]XMemPool * mem: 内存池
[i] const T * item: 对象指针
return value: 无
void remove(XMemPool * mem, const T * item)
function: 删除对象指针
parameters:
[i]XMemPool * mem: 内存池
[i] const T * item: 对象指针
return value: 无
void remove(XMemPool * mem, int i)
function: 删除第i个对象指针
parameters:
[i]XMemPool * mem: 内存池
[i] int i: 对象指针索引
return value: 无
int copyTo(const T ** ptrs)
int find(const T * item) const
function: 获取对象指针的索引号
parameters:
[i]const T * item: 对象指针
return value: 对象指针的索引号
const T * at(int index) const
ulong count() const
function: 获取对象指针个数
parameters: NULL
return value:
void clear(XMemPool * mem)
function: 清空数组,重置数组为最小容量
parameters:
[i]XMemPool * mem: 内存池
return value: 无