C++Builder 中动态数组的使用(转)

源:http://i.cnblogs.com/EditPosts.aspx?opt=1

和AnsiString类型一样,动态数组是为了和DELPHI中的动态数组相兼容而定义,在BCB中,动态数组是用模板(template)的方式使用的,动态数组的定义如下:

template class DELPHIRETURN DynamicArray;

所以我们在使用时必须要指定明确的基本数据类型,比如说要定义一个int类型的动态数组arrayOfInt,其定义格式如下:

DynamicArray arrayOfInt;

怎么动态改变数组的大小呢?DynamicArray类有一个属性Length,只要简单改变这个值就可以改变数组的大小,例如要把arrayOfInt的长度设为10:

arrayOfInt.Length=10;

特别提出的是,如果要释放一个动态数组,只要把Length设置为0即可,怎么样?够简单的吧?

DynamicArray的属性和方法并不多,下面我就一一说明。

High int 只读,动态数组的上界,即Length-1。
Low int 只读,动态数组的下界,桓为0。
Length int 设置/返回动态数组的长度,设为0表示释放数组
Copy()   拷贝一个动态数组的内容到另一动态数组,比如tmp=a_data.Copy();必须两者是相同类型。
CopyRange(int startindex,int count)   拷贝一个动态数组指定范围的内容到另一动态数组,第一个参数为起始位置,第二个参数为拷贝的个数,
=   赋值。只是生成指向本数组的一个变量名,如果要生成一个副本,就必须用Copy()方法。
==   比较。
[]   取下标。

这样,我们就可以在BCB中使用动态数组了,在功能强大使用灵活的BCB中使用使用灵活的动态数组,不是一件让人高兴的事情吗?

时间: 2024-10-28 06:35:11

C++Builder 中动态数组的使用(转)的相关文章

《C语言中动态数组的创建及引用》

C语言中动态数组的创建及引用 动态数组是相对于静态数组而言的,静态数组的长度是预定义好的,在整个程序中,一旦给定了数组大小后就无法改变,,而动态数组则不然,它可以根据程序需要重新指定数组的大小.动态数组的内存空间是由堆动态分配的,通过执行代码为其分配储存空间,只有程序执行到分配语句时,才为其分配储存空间. 对于动态数组,其创建比静态数组更麻烦一些,使用完必须由程序员自己释放,否则将引起内存泄漏,但是其使用非常灵活,能根据程序需要动态分配大小,因此相对于静态数组来说,使用动态数组的自由度更大. 对

c语言结构体中动态数组的使用

[背景] c语言结构体中动态数组使得用户能够根据需要来申请空间,相比静态数组,更能有效利用存储空间. [正文] 1. 动态数组在结构体中间 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { int a; char buf[0]; // 或者char buf[]; int b; }Node; int main() { printf("%d\n", si

c语言中动态数组的建立

一维动态数组的创建,这个比较简单,直接上代码 1 #define _CRT_SECURE_NO_DEPRECATE 2 #include<stdio.h> 3 #include<stdlib.h> 4 void createOneDimensionalVector(){ 5 int n, i; 6 int *arr; 7 scanf("%d",&n); 8 arr = (int*)malloc(sizeof(int)*n); 9 for (i = 0;

c++动态数组vector

(这篇随笔主要和大家分享一下在信竞中c++中动态数组vector的用法,那些跟竞赛没毛关系的就不说了..) 相信大家都知道c++里有一个nb的STL模板库..(在这里膜一下STL) 今天我们就要扯一扯这里面的一个容器:动态数组vector. vector实际上类似于a[]这个东西,也就是说它重载了[]运算符.(真是66666666) 使用vector时需要加上<vector>这个头文件. 定义方法:vector <类型名> 变量名; 例: vector <int> a;

如何在c程序中动态使用数组

C语言不允许对数组的大小作动态定义,不能在程序中临时输入数组大小,这就给编程带来一定的困难. 下面通过一个求平均数和标准差的小程序来展示如何在程序中动态定义数组大小: 1 /*如何在c程序中动态使用数组(calloc函数)*/ 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <math.h> 5 int main(){ 6 int num; //数据个数 7 double sum,ave,s2; //数据和.平

JAVA中给数组动态赋值及在数组中查找数据

package java14.java; /** * 会员操作类 * @author Administrator * */public class hydo { int num; //声明会员信息类数组// hyInfo[]info=new hyInfo[5]; hyInfo[]info; //把数组变成动态 public hyInfo[] Arraynum(int num){ info=new hyInfo[num]; return info; } //录入hyInfo数组信息 public

动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

 1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /************************************************************************/ /*数组的结构体类型                                                    */ /*******************

C++中关于[]静态数组和new分配的动态数组的区别分析

这篇文章主要介绍了C++中关于[]静态数组和new分配的动态数组的区别分析,很重要的概念,需要的朋友可以参考下 本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加深对C++语言数组的理解.具体区别如下: 一.对静态数组名进行sizeof运算时,结果是整个数组占用空间的大小:因此可以用sizeof(数组名)/sizeof(*数组名)来获取数组的长度.int a[5]; 则sizeof(a)=20,sizeof(*a)=4.因为整个数组共占20字节,首个元素(i

C#语言中的动态数组(ArrayList)模拟常用页面置换算法(FIFO、LRU、Optimal)

目录 00 简介 01 算法概述 02 公用方法 03 先进先出置换算法(FIFO) 04 最近最久未使用(LRU)算法 05 最佳置换算法(OPT) 00 简介 页面置换算法主要是记录内存的忙闲状态,为进程分配和释放内存.当主存的空间太小而无法装入所有的进程时,就需要在内存和硬盘之间进行调度操作. 多数操作系统只采用某种特定的页面置换算法进行置换,无法预先探测当前运行进程的页面访问模式,因此不能根据不同的页面访问模式,选用不同的页面置换算法.当然,如果能对不同的访问模式选取相应的页面置换算法,