如何在CAPL中实现变长数组(一维数组)

前言:

变长数组好处多多,他可以根据需要设置数组的长度,节省了内存开支,防止了因为数组越界导致的内存泄漏。

故:我们都要学会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()方法后,才能继续初始化变长数组。

相关推荐
We་ct5 小时前
LeetCode 199. 二叉树的右视图:层序遍历解题详解
前端·算法·leetcode·typescript·广度优先
晴殇i5 小时前
深入浅出 XSS:原理、危害与全方位防御指南
前端·面试
Coisinilove5 小时前
MATLAB微分方程求解
开发语言·matlab·微分方程
前端 贾公子5 小时前
CSS 系统颜色和暗黑模式的关系及意义
前端·javascript·vue.js·html
李剑一5 小时前
百度搜索怎样屏蔽某SDN
前端
PieroPc5 小时前
HTML5 Canvas 平台跳跃游戏
前端·游戏·html5
鲨辣椒100865 小时前
线程函数接口补充
java·开发语言·算法
沐知全栈开发5 小时前
Java 枚举
开发语言
Qinana5 小时前
解构 LangChain Tool Calling:从 Schema 定义到 Agent 执行循环的深度解析
前端·javascript·node.js