carry函数在C语言中用法,CArry的使用完整版.doc
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相关推荐
- carry函数在C语言中用法,carry的用法
carry用作动词表示携带,运送,搬运 ,carry多用作及物动词,主语多为人,也可为天然或人工的通道等,宾语则为运送的有形物或无形物. 1.carry的基本意思是"运输"&quo ...
- 说明使用tc编程的一般步骤 c语言,TC编程手册详解-完整版.doc
TC编程手册详解-完整版 TC编程手册详解-完整版 本文是TC的第一部分,主要介绍一些TC相关的基础知识,并着重针对循环.变量等TC基本概念中的易混的淆部分加以辨析,即是一份编程初学者的指南,也可算作 ...
- c++语言题库,C++题库完整版.doc
C题库完整版 程序控制结构 本题序号:17 有如下程序: # include # include void main( ) { int s[ ]={123, 234}; cout< for(in ...
- main在c语言中的作用,main函数在C语言中是怎么定义的?有什么作用?
main函数在C语言中是怎么定义的?有什么作用? 更新时间:2019-10-24 13:55 最满意答案 额,main不是程序的最开始啦.拿用glibc的程序来说,C语言执行的过程应该是 _start ...
- c语言程序中函数类型,C语言中的函数分别有什么?
C语言函数是一种函数,用来编译C语言,所在库函数为ctype.h,分为分类函数,数学函数,目录函数,进程函数,诊断函数,操作函数等. C语言中的函数在其他编程语言中也称为过程或子程序.要执行任务,我们 ...
- c语言字符串二维数组的动态分配应,C语言中动态分配二维数组复习过程.doc
C语言中动态分配二维数组复习过程.doc C语言中动态分配二维数组在C中动态分配内存的,对于单个变量,字符串,一维数组等,都是很容易的.C中动态分配二维数组的方法,很少有C语言书中描述,我查找了有的C ...
- c语言复合运算,C语言中复合赋值运算,表达式等知识(DOC可编).doc
C语言中复合赋值运算,表达式等知识(DOC可编).doc 3.1复合赋值运算 算术运算符"+ - * / %"和赋值运算符"="结合起来,形成复合赋值运算符.如 ...
- c语言复合赋值表达式题目,C语言中复合赋值运算,表达式等知识.doc
C语言中复合赋值运算,表达式等知识.doc 3.1复合赋值运算 算术运算符"+ - * / %"和赋值运算符"="结合起来,形成复合赋值运算符.如下所示:+= ...
- c语言上11e2是实型常量吗,在C语言中的实型变量分为两种类型.doc
在C语言中的实型变量分为两种类型.doc 第二章 练习题 一.填空题 1.在C语言中的实型变量分为两种类型,它们是float型和( )型. 2.若有定义:char c='\010';则变量c中包含的字 ...
最新文章
- ASP.NET DEMO 14: 如何在 GridView/DataGrid 模板列中使用自动回发的 CheckBox/DropDownList
- java计算代码执行时间
- 1.18 static的常见问题和使用误区
- mysql中nvl_Mysql中类似于oracle中nvl()函数的ifnull()函数
- php表格怎么合并单元格格式化,table标签的结构与合并单元格的实现方法
- 【渝粤题库】广东开放大学 会展策划 形成性考核
- [Linux C]递归遍历指定目录下的子目录和文件
- 系统安全:Nessus Home版安装使用
- 【java实现点卡生成】
- 《HTML5 2D游戏编程核心技术》——第3章,第3.8节绘制动画帧
- django中url与view配置方法
- Windows使用快捷键
- 天线理论巴拉尼斯_天线学习类图书推荐 - 欧源通天线厂家
- pdf文件旋转后怎么完整保存
- 神经网络基本原理、误差逆传播BP算法公式推导与多层神经网络的Python实现
- 聚醚/聚丙烯酰胺-竣甲基/聚丙烯酰胺/粒状聚N-异丙基丙烯酰胺壳聚糖水凝胶的制备方法
- 深度学习—利用TensorFlow2实现狗狗品种品种(DenseNet121实现)
- 微信好友排行榜 最简教程 二
- sap增加税码注意事项
- 匈牙利为庆贺第17届奥运会而发行的纪念邮票
热门文章
- Android_组件_BroadcastReceiver基础
- python实现JWT
- DWR第四篇之对象传参
- 网络创新激活西部科技,戴尔2013软件定义网络圆桌会谈的启示
- [转载] java 捕获异常还是抛出异常
- [转载] python3基础:异常处理及python常见异常类型总结
- python 在window 系统 连接并操作远程 oracle 数据库
- java与C++变量类型对应表
- MongoDB 之 你得知道MongoDB是个什么鬼 MongoDB - 1
- 解析button和input type=”button”的区别