User Tools

Site Tools


class:kernel:xitemptrarray

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 copyTo(const T ** ptrs)
  • int find(const T * item) const
  • const T * at(int index) const
  • ulong count() 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)

  • function: 为cnt个对象指针分配内存空间
  • parameters:
    1. [i]XMemPool * mem: 内存池
    2. [i] const T ** item: 对象指针数组
    3. [i] int cnt: 对象指针个数
  • return value: 无

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

  • function: 添加对象指针
  • parameters:
    1. [i]XMemPool * mem: 内存池
    2. [i] const T * item: 对象指针
  • return value: 无

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

  • function: 删除对象指针
  • parameters:
    1. [i]XMemPool * mem: 内存池
    2. [i] const T * item: 对象指针
  • return value: 无

void remove(XMemPool * mem, int i)

  • function: 删除第i个对象指针
  • parameters:
    1. [i]XMemPool * mem: 内存池
    2. [i] int i: 对象指针索引
  • return value: 无

int copyTo(const T ** ptrs)

  • function: 将对象指针数组拷贝到指定内存地址中
  • parameters:
    1. [i]const T ** ptrs: 目标内存地址
  • return value: 拷贝的对象指针个数

int find(const T * item) const

  • function: 获取对象指针的索引号
  • parameters:
    1. [i]const T * item: 对象指针
  • return value: 对象指针的索引号

const T * at(int index) const

  • function: 获取第index个对象指针
  • parameters:
    1. [i]int index: 索引号
  • return value: 第index个对象指针

ulong count() const

  • function: 获取对象指针个数
  • parameters: NULL
  • return value:

void clear(XMemPool * mem)

  • function: 清空数组,重置数组为最小容量
  • parameters:
    1. [i]XMemPool * mem: 内存池
  • return value: 无
class/kernel/xitemptrarray.txt · Last modified: 2023/05/06 07:01 (external edit)