C P tr A rray
CPtrArray 类 支 持 void 指 针 数 组 。
CPtrArray 的 成 员 函 数 类 似 于 CObArray 类 的 成 员 函 数 。 由 于 这 种 相 似 , 你 可 以利 用 CObArray 参 考 文 档 作 为 成 员 函 数 的 说 明 。 无 论 在 何 处 使 用 一 个 CObject
指 针 作 为 函 数 参 数 或 返 回 值 , 都 可 以 将 它 替 换 成 void 。 例 如 :
CObject* CObArray::GetAt( int <nIndex> ) const;
可 以 转 换 成 :
void* CPtrArray::Get A t( int <nIndex> ) const;
CPtrArray 嵌入 IMPLEMENT_DYNAMIC 宏 来 支 持 运 行 时 类 型 访 问 和 转 储 到 一个 CDumpContext 对 象 。 如 果 你 需 要 转 储 个 别 的 指 针 数 组 元 素 , 你 必 须 将 转 储环 境 的 深 度 设 置 为 1 或 更 大 。
注 意 在 使 用 一 个 数 组 之 前 , 先 用 SetSize 函 数 建 立 数 组 的 大 小 , 并 为数 组 分 配 内 存 。 如 果 应 用 程 序 没 有 使 用 SetSize 函 数 , 则 向 数 组 中 增 加元 素 会 使 它 被 频 繁 地 再 分 配 和 拷 贝 。 频 繁 再 分 配 和 拷 贝 的 效 率 很 低 , 并且 可 能 使 内 存 变 得 很 零 碎 。
指 针 数 组 不 能 被 串 行 化 。
当 一 个 指 针 数 组 被 删 除 时 , 或 当 其 元 素 被 删 掉 时 , 只 删 掉 指 针 , 而 这 些 指 针 所引 用 的 实 体 不 被 删 除 。
#include <afxcoll.h>
请 参 阅 CObArray
CPtrArray 类 成 员
Construction
CptrArray 构 造 一 个 空 的 void 指 针 数 组
Bounds
GetSize 获 取 这 个 数 组 中 的 元 素 个 数
GetUpperBound 返 回 最 大 的 有 效 索 引
SetSize 设 置 此 数 组 中 要 包 含 的 元 素 个 数
Operations
FreeExtra 释 放 超 出 当 前 上 界 的 所 有 未 用 内 存
RemoveAll 删 除 此 数 组 中 的 所 有 元 素
Element Access
GetAt 返 回 给 定 索 引 处 的 值
SetAt 设 置 给 定 索 引 处 的 值 ; 数 组 不 运 行 扩 展
ElementAt 返 回 对 数 组 内 的 一 个 元 素 指 针 的 一 个 临 时 引 用
GetData 允 许 访 问 数 组 中 的 元 素 。 不 能 是 NULL
Growin g th e Arra y SetAtGrow 设 置 给 定 索 引 处 的 值 , 如 果 必 要 , 允 许 数 组 扩 展
Add 将 一 个 元 素 增 加 到 数 组 尾 ; 在 必 要 时 扩 展 数 组
Append 将 另 一 个 数 组 添 加 到 此 数 组 ; 如 果 必 要 , 则 扩 展 此数 组
Copy 将 另 一 个 数 组 拷 贝 给 此 数 组 ; 如 果 必 要 , 则 扩 展 此数 组
Insertion/Remova l InsertAt 将 一 个 元 素 ( 或 另 一 数 组 中 的 所 有 元 素 ) 插 入 到 指
定 索 引 处
RemoveAt 删 除 指 定 索 引 处 的 元 素
Operator s Operator[ ] 设 置 或 获 取 给 定 索 引 处 的 元 素