template <typename T, int N> XItemArray

Inherited from NULL

Inherited by NULL

Friend class NULL

Description

XItemArray封装了按固定大小N增长的数组,它一般用于在数组长度不是很大的场合,便于直接从内存池中分配,可以避免程序运行中频繁分配释放数组时产生的内存碎片,同时保证数据访问性能。它的容量为N的整数倍,增加数组对象时直接在数组的内存空间中赋值,当对象的个数超过容量时,将数组的容量增长N重新从内存池中申请空间并将旧的空间的值全部拷贝到新的内存空间中,然后将旧的空间放回到内存池中;删除对象时将该对象后面的数据向前挪动一个对象的长度,如果剩余容量小于N,将数组的容量较少N重新从内存池中申请空间并将旧的空间的值全部拷贝到新的内存空间中,然后将旧的空间放回到内存池中。

Members

Private interface


T * pItemArray

对象数组首地址

int iItemCount

对象个数


void increaseCount()

void decreaseCount()

void add(XMemPool * mem, const T & item)

void remove(XMemPool * mem, const T & item)

void remove(XMemPool * mem, int i)

void removeAll(XMemPool * mem)

int find(const T & item) const

T & at(int index) const

T & operator [] (int index) const

int count() const

void clear(XMemPool * mem)