C U IntArray
CUIntArray 类 支 持 无 符 号 整 数 数 组 。 一 个 无 符 号 的 整 数 , 或 UIN T , 与 字 和 双字 是 不 一 样 的 , 一 个 UINT 的 物 理 大 小 可 以 根 据 目 标 操 作 环 境 而 改 变 。 在W indows 3.1 版 下 , 一 个 UINT 与 一 个 WORD 的 大 小 是 一 样 的 。在 W indows NT 和 W indows 95 下 , 一 个 U IN T 的 大 小 与 一 个 双 字 一 样 大 。
CUIntArray 的 成 员 函 数 类 似 于 类 CObArray 的 成 员 函 数 。 由 于 这 个 相 似 性 , 你可 以 使 用 特 定 成 员 函 数 的 CObArray 引 用 文 件 。 在 你 看 见 一 个 CObject 指 针 作为 函 数 参 数 或 返 回 值 的 地 方 , 用 一 个 UINT 来 代 替 。 例 如 :
CObject* CObArray::GetAt( int <nIndex> ) const;
可 以 被 转 换 为
UINT CUIntArray::GetAt( int <nIndex> ) const;
CUIntArray 与 IMPLEMENT_DYNAMIC 宏 一 起 支 持 运 行 时 类 型 访 问 和 转 储 到一 个 CDumpContext 对 象 。 如 果 你 需 要 单 个 无 符 号 整 数 元 素 的 转 储 , 你 必 须 将转 储 环 境 的 深 度 设 置 为 1 或 更 大 。 无 符 号 整 数 数 组 不 能 被 连 续 。
注 意 在 使 用 一 个 数 组 之 前 , 使 用 SetSize 来 建 立 它 的 大 小 并 给 它 分 配内 存 。 如 果 你 不 使 用 SetSize , 当 向 你 的 数 组 添 加 元 素 时 会 导 致 频 繁 地重 定 位 和 拷 贝 。 频 繁 的 重 定 位 和 拷 贝 会 降 低 效 率 并 产 生 内 存 碎 片 。
有 关 使 用 CUIntArray 的 更 多 信 息 , 参 见“ V isual C++ 程 序 员 指 南 ” 中 的 文 章“ 集合 ” 。
#include <afxcoll.h>
CUIntArray 类 成 员
Construction
CUIntArray 构 造 一 个 无 符 号 整 数 的 空 数 组
Bound s
GetSize 获 取 此 数 组 中 的 元 素 的 数 目
GetUpperBound 获 取 最 大 的 有 效 索 引
SetSize 设 置 包 含 在 此 数 组 中 的 元 素 数 目
Operations
FreeExtra 释 放 在 当 前 上 边 界 之 上 的 所 有 没 有 使 用 的 内 存
RemoveAll 从 此 数 组 中 删 除 所 有 的 元 素
Element Access
GetAt 返 回 一 个 给 定 索 引 处 的 值
SetAt 设 置 一 个 给 定 索 引 的 值 , 不 允 许 数 组 增 长
ElementAt 返 回 一 个 对 数 组 中 的 元 素 指 针 的 临 时 引 用
GetData 允 许 访 问 数 组 中 的 元 素 。 可 以 是 NULL
Growing the Array
SetAtGrow 设 置 一 个 给 定 索 引 的 值 。 允 许 数 组 的 必 要 增 长
Add 在 数 组 的 最 后 添 加 一 个 元 素 , 允 许 数 组 的 必 要 增 长
Append 给 此 数 组 添 加 另 一 个 数 组 , 允 许 数 组 的 必 要 增 长
Copy 将 另 一 个 数 组 拷 贝 到 该 数 组 , 允 许 数 组 的 必 要 增 长
Insertion/Remova l
InsertAt 在 指 定 索 引 处 插 入 一 个 元 素 ( 或 另 一 个 数 组 中 的 所有 元 素 )
RemoveAt 删 除 指 定 索 引 处 的 元 素
Operators
operator 设 置 或 获 取 指 定 索 引 处 的 元 素