User Tools

Site Tools


class:kernel:xarray

template <typename T> XArray

Inherited from NULL

Inherited by NULL

Friend class NULL

Description

XArray是一个封装了数组功能的模板类,主要用于数据对象里需要保存变长数据的场合,对数据对象的任何修改即意味着变长数组的重建(当数组长度变化时)。与标准库里面的vector不一样,它不太适用于可以随时添加元素的场景,但是另一方面它也有效降低了该类的复杂度,开发者要根据实际情况觉得是否使用XArray类。

Members

Public interface

  • XArray(int size = 0)
  • const T * end() const
  • XArray<T> & operator = (const XArray<T> &r)
  • XArray(const XArray<T> & r)
  • void release()
  • void alloc()
  • void remove(int i)
  • int size() const
  • T & front()
  • T & back()
  • const T & front() const
  • const T & back() const
  • void resize(int size, bool bCopyFromOld = false)
  • T * data()
  • const T * data() const
  • operator T *() const
  • T& operator [](int index)
  • const T& operator [](int index) const
  • T& at(int index)
  • const T& at(int index) const
  • void assign(const XArray<T> & r)
  • void append(const XArray<T> & r)
  • void assign(const T * pSrc, int size)
  • void insert(int index, const T & item)
  • XArray<T> & operator = (const vector<T> & vec)

size_t m_Size

数组长度

T * m_pVec

数组首地址


XArray(int size = 0)

  • function: 构造函数
  • parameters:
    1. [i]int size = 0: 数组大小,默认情况下为0,数组不分配内存
  • return value: 无

const T * end() const

  • function: 获取数组的末地址,一般用于判断给定元素是否到达数组尾部
  • parameters: NULL
  • return value: 无

XArray<T> & operator = (const XArray<T> &r)

  • function: 赋值构造函数
  • parameters:
    1. [i]const XArray<T> &r: 另一个数组对象
  • return value: 数组对象的引用

XArray(const XArray<T> & r)

  • function: 复制构造函数
  • parameters:
    1. [i]const XArray<T> & r: 另一个数组对象
  • return value: 无

~XArray()

  • function: 析构函数,释放内存
  • parameters: NULL
  • return value: 无

void release()

  • function: 释放数组内存
  • parameters: NULL
  • return value: 无

void alloc()

  • function: 为数组分配内存空间
  • parameters: NULL
  • return value: 无

void remove(int i)

  • function: 删除第i个元素
  • parameters:
    1. [i]int i: 元素序号
  • return value: 无

int size() const

  • function: 获取数组长度
  • parameters: NULL
  • return value: 数组长度

T & front()

  • function: 获取数组的第一个元素
  • parameters: NULL
  • return value: 数组第一个元素的引用,可以修改

T & back()

  • function: 获取数组的最后一个元素,可以修改
  • parameters: NULL
  • return value: 最后一个元素的引用

const T & front() const

  • function: 获取数组的第一个元素,不能修改
  • parameters: NULL
  • return value: 数组第一个元素的常引用

const T & back() const

  • function: 获取数组的最后一个元素,不能修改
  • parameters: NULL
  • return value: 数组最后一个元素的常引用

void resize(int size, bool bCopyFromOld = false)

  • function: 修改数组长度,根据需要拷贝旧的数据(最大只拷贝size范围内的数据)
  • parameters:
    1. [i]int size: 新的数组长度
    2. [i] bool bCopyFromOld = false: 若需要拷贝旧的数据为true,否则为false
  • return value: 无

T * data()

  • function: 获取数组地址
  • parameters: NULL
  • return value: 数组地址

const T * data() const

  • function: 获取数组地址
  • parameters: NULL
  • return value: 数组地址

operator T *() const

  • function: 转换为数组地址
  • parameters: NULL
  • return value: 数组地址

T& operator [](int index)

  • function: 访问第index个元素
  • parameters:
    1. [i]int index: 元素的位置索引
  • return value: 第index个元素的引用

const T& operator [](int index) const

  • function: 访问第index个元素(不能修改)
  • parameters:
    1. [i]int index: 元素的位置索引
  • return value: 第index个元素的常引用

T& at(int index)

  • function: 访问第index个元素(可以修改)
  • parameters:
    1. [i]int index: 元素的位置索引
  • return value: 第index个元素的常引用

const T& at(int index) const

  • function: 访问第index个元素(不能修改)
  • parameters:
    1. [i]int index: 元素的位置索引
  • return value: 第index个元素的常引用

void assign(const XArray<T> & r)

  • function: 将另一个数组赋值到本数组(和复制构造函数类似)
  • parameters:
    1. [i]const XArray<T> & r: 赋值源数组对象
  • return value: 无

void append(const XArray<T> & r)

  • function: 将另一个数组添加到本数组尾部(本数组会重新分配空间以容纳所有元素)
  • parameters:
    1. [i]const XArray<T> & r: 添加源数组对象
  • return value: 无

void assign(const T * pSrc, int size)

  • function: 从另一个数组赋值到本数组
  • parameters:
    1. [i]const T * pSrc: 源数组地址
    2. [i] int size: 源数组长度
  • return value: 无

void insert(int index, const T & item)

  • function: 在第index个位置插入元素
  • parameters:
    1. [i]int index: 插入位置
    2. [i] const T & item: 代插入的元素
  • return value: 无

XArray<T> & operator = (const vector<T> & vec)

  • function: 从标准库的vector赋值到本数组
  • parameters:
    1. [i]const vector<T> & vec: 标准库源数组
  • return value: 本数组的引用
class/kernel/xarray.txt · Last modified: 2023/05/06 07:01 (external edit)