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


int iItemCount

对象指针个数

const T ** pItemPtrArray

对象指针数组首地址


XItemPtrArray()

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 copyTo(const T ** ptrs)

int find(const T * item) const

const T * at(int index) const

ulong count() const

void clear(XMemPool * mem)