CArry的使用完整版

CArray的用法

templateclass CArray:public CObject

参数

TYPE

模板参数指定存储在数组中的对象的类型。TYPE是一个由CArray返回的参数。ARG_TYPE

模板参数指定用于访问存储在数组中对象的参数类型。通常是一个对TYPE的参考。ARG_TYPE是一个传递给CArray的参数。

说明

CArray类支持与CArray相似的数组,但是必要时可以动态压缩并扩展。数组索引从0开始。可以决定是固定数组上界还是允许当添加元素时扩展当前的边界。内存对上界是连续地分配空间,甚至一些元素可为空。和CArray一样,CArray索引元素的访问时间是不变的,与数组大小无关。

需要包含的头文件

CArray类支持与C arrays相似的数组,但是必要时可以动态压缩并扩展。数组索引从0开始。可以决定是固定数组上界还是允许当添加元素时扩展当前的边界。内存对上界是连续地分配空间,甚至一些元素可为空。

和CArray一样,CArray索引元素的访问时间是不变的,与数组大小无关。

提示:

在使用一个数组之前,使用SetSize建立它的大小和为它分配内存。如果不使用SetSize,则为数组添加元素就会引起频繁地重新分配和拷贝。频繁地重新分配和拷贝不但没有效率,而且导致内存碎片。

如果需要一堆数组中的个别数据,必须设置CDumpContext对象的深度为1或更大。

此类的某成员函数调用全局帮助函数,它必须为CArray的大多数使用而定制。请参阅宏和全局量部分中的“类收集帮助器”。

当从一个CArray对象中移去元素时,帮助函数DestructElements被调用。

当添加元素时,帮助函数ConstructElements被调用。

数组类的派生与列表的派生相似。

MFC提供了一套模板库,来实现一些比较常见的数据结构如Array,List,Map。CArray即为其中的一个,用来实现动态数组的功能。CArray是从CObject派生,有两个模板参数,第一个参数就是CArray类数组元素的变量类型,后一个是函数调用时的参数类型。有一个类 class Object,要定义一个Object的动态数组,那么可以用以下两种方法:

CArray Var1;

CArray Var2;

Var2的效率要高。

ClassHelpers

CArray类的成员

构造函数

Carray构造一个空数组

属性

GetSize获得此数组中的元素数

GetUpperBound返回最大的有效索引值

SetSize设置包含在此数组中的元素数

操作

FreeExtra释放大于当前上界的未使用的内存

RemoveAll从此数组移去所有元素

元素访问

GetAt返回在给定索引上的值

SetAt设定一个给定索引的值;数组不允许扩展

ElementAt返回一个对数组中元素指针的临时参考

GetData允许对数组中的元素访问。可以为NULL

扩展数组

SetAtGrow为一个给定索引设置值;如果必要,扩展数组

Add在数组的末尾添加元素;如果必要,扩展数组

Append在数组上附加另一个数组;如果必要,扩展数组

Copy把另一个数组拷贝到数组上;如果必要,扩展数组

插入/移去

InsertAt在指定的索引上插入一个元素(或另一个数组中的所有元素)

RemoveAt在指定的索引上移去一个元素

运算符

[ ]在特定索引上设置或获取元素

成员函数

CArray::Add

int Add(ARG_TYPE newElement);

throw(CmemoryException);

返回值

添加元素的索引。

参数

ARG_TYPE

模板参数指定应用数组中元素的参数的类型。

newElement

被加入此数组的元素。

说明

在数组的末尾加入一个新的元素,数组长度加1。如果SetSize已经使用nGrowBy值比1大,则内存按其分配。无论怎样,上界只增长1。

示例

//example for CArray:Add

CArray ptArray;

Cpoint pt(10.20);

ptArray.Add(pt);

//Element 0

ptArray.Add(Cpoint(30,40));

//Element 1

CArray::

carry函数在C语言中用法,CArry的使用完整版.doc相关推荐

  1. carry函数在C语言中用法,carry的用法

    carry用作动词表示携带,运送,搬运 ,carry多用作及物动词,主语多为人,也可为天然或人工的通道等,宾语则为运送的有形物或无形物. 1.carry的基本意思是"运输"&quo ...

  2. 说明使用tc编程的一般步骤 c语言,TC编程手册详解-完整版.doc

    TC编程手册详解-完整版 TC编程手册详解-完整版 本文是TC的第一部分,主要介绍一些TC相关的基础知识,并着重针对循环.变量等TC基本概念中的易混的淆部分加以辨析,即是一份编程初学者的指南,也可算作 ...

  3. c++语言题库,C++题库完整版.doc

    C题库完整版 程序控制结构 本题序号:17 有如下程序: # include # include void main( ) { int s[ ]={123, 234}; cout< for(in ...

  4. main在c语言中的作用,main函数在C语言中是怎么定义的?有什么作用?

    main函数在C语言中是怎么定义的?有什么作用? 更新时间:2019-10-24 13:55 最满意答案 额,main不是程序的最开始啦.拿用glibc的程序来说,C语言执行的过程应该是 _start ...

  5. c语言程序中函数类型,C语言中的函数分别有什么?

    C语言函数是一种函数,用来编译C语言,所在库函数为ctype.h,分为分类函数,数学函数,目录函数,进程函数,诊断函数,操作函数等. C语言中的函数在其他编程语言中也称为过程或子程序.要执行任务,我们 ...

  6. c语言字符串二维数组的动态分配应,C语言中动态分配二维数组复习过程.doc

    C语言中动态分配二维数组复习过程.doc C语言中动态分配二维数组在C中动态分配内存的,对于单个变量,字符串,一维数组等,都是很容易的.C中动态分配二维数组的方法,很少有C语言书中描述,我查找了有的C ...

  7. c语言复合运算,C语言中复合赋值运算,表达式等知识(DOC可编).doc

    C语言中复合赋值运算,表达式等知识(DOC可编).doc 3.1复合赋值运算 算术运算符"+ - * / %"和赋值运算符"="结合起来,形成复合赋值运算符.如 ...

  8. c语言复合赋值表达式题目,C语言中复合赋值运算,表达式等知识.doc

    C语言中复合赋值运算,表达式等知识.doc 3.1复合赋值运算 算术运算符"+ - * / %"和赋值运算符"="结合起来,形成复合赋值运算符.如下所示:+= ...

  9. c语言上11e2是实型常量吗,在C语言中的实型变量分为两种类型.doc

    在C语言中的实型变量分为两种类型.doc 第二章 练习题 一.填空题 1.在C语言中的实型变量分为两种类型,它们是float型和( )型. 2.若有定义:char c='\010';则变量c中包含的字 ...

最新文章

  1. ASP.NET DEMO 14: 如何在 GridView/DataGrid 模板列中使用自动回发的 CheckBox/DropDownList
  2. java计算代码执行时间
  3. 1.18 static的常见问题和使用误区
  4. mysql中nvl_Mysql中类似于oracle中nvl()函数的ifnull()函数
  5. php表格怎么合并单元格格式化,table标签的结构与合并单元格的实现方法
  6. 【渝粤题库】广东开放大学 会展策划 形成性考核
  7. [Linux C]递归遍历指定目录下的子目录和文件
  8. 系统安全:Nessus Home版安装使用
  9. 【java实现点卡生成】
  10. 《HTML5 2D游戏编程核心技术》——第3章,第3.8节绘制动画帧
  11. django中url与view配置方法
  12. Windows使用快捷键
  13. 天线理论巴拉尼斯_天线学习类图书推荐 - 欧源通天线厂家
  14. pdf文件旋转后怎么完整保存
  15. 神经网络基本原理、误差逆传播BP算法公式推导与多层神经网络的Python实现
  16. 聚醚/聚丙烯酰胺-竣甲基/聚丙烯酰胺/粒状聚N-异丙基丙烯酰胺壳聚糖水凝胶的制备方法
  17. 深度学习—利用TensorFlow2实现狗狗品种品种(DenseNet121实现)
  18. 微信好友排行榜 最简教程 二
  19. sap增加税码注意事项
  20. 匈牙利为庆贺第17届奥运会而发行的纪念邮票

热门文章

  1. Android_组件_BroadcastReceiver基础
  2. python实现JWT
  3. DWR第四篇之对象传参
  4. 网络创新激活西部科技,戴尔2013软件定义网络圆桌会谈的启示
  5. [转载] java 捕获异常还是抛出异常
  6. [转载] python3基础:异常处理及python常见异常类型总结
  7. python 在window 系统 连接并操作远程 oracle 数据库
  8. java与C++变量类型对应表
  9. MongoDB 之 你得知道MongoDB是个什么鬼 MongoDB - 1
  10. 解析button和input type=”button”的区别