前言:
变长数组好处多多,他可以根据需要设置数组的长度,节省了内存开支,防止了因为数组越界导致的内存泄漏。
故:我们都要学会CAPL如何实现变长数组。整体代码如下
cpp
/*@!Encoding:936*/
includes
{
}
variables
{
}
on key 'a'
{
/*代码段1:首先看变长数组如何实现*/
int Array_1[long]; //数组的【】不在使用显示常量或const修饰的变量显示大小,而是声明了一种变量类型
stack long MyKey=100; //stack 是CAPL特有的一个修饰关键字,是将变量存放于堆区,每次进入代码,都需要执行初始化
stack long i=0;
Array_1[MyKey]=MyKey; //这段代码有两个作用,1:是对数组的长度设置为101,2:是将数组的最后一个成员值=100
write("直接赋值后看看数组的大小是多少%d",Array_1.size()); //实际上是对
/*代码段2:如何快速的对所有数组赋值*/
for(;i<MyKey;i++)
{
Array_1[MyKey]=MyKey;
}
for(long Mykey:Array_1) //遍历关联字段的所有KEY值,功能可以理解如下代码
/*
for(long Mykey;Mykey<=MyKey;Mykey++)
{
}
*/
{
write("%d",Array_1[Mykey]);
}
/*最后看看变长数组,自带的几种Method*/
Array_1.containsKey(99); //是检查是否包含第99个数组成员。返回值1,代表成员存在。0代表不存在
Array_1.remove(98); //移除第98个数组成员,移除后,数组成员变成100个,移除的98位,被99位的成员覆盖,即移除后,大覆盖小
}
总结:1:注意CAPL中变长数组声明方式,关注特殊的声明方式
2:注意变长数组,特殊的for()遍历key的用法,另外注意只有初始化赋值后,才能使用for遍历key的用法
3:注意,当变长数组执行remove()方法后,才能继续初始化变长数组。