如何在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()方法后,才能继续初始化变长数组。

相关推荐
自由随风飘17 小时前
python 题目练习1~5
开发语言·python
Bony-17 小时前
Go语言完全学习指南 - 从基础到精通------语言基础篇
服务器·开发语言·golang
fl17683119 小时前
基于python的天气预报系统设计和可视化数据分析源码+报告
开发语言·python·数据分析
ACP广源盛1392462567319 小时前
(ACP广源盛)GSV6172---MIPI/LVDS 信号转换为 Type-C/DisplayPort 1.4/HDMI 2.0 并集成嵌入式 MCU
c语言·开发语言·单片机·嵌入式硬件·音视频
不穿格子的程序员19 小时前
从零开始刷算法-栈-括号匹配
java·开发语言·
漂流瓶jz19 小时前
Webpack中各种devtool配置的含义与SourceMap生成逻辑
前端·javascript·webpack
这是个栗子19 小时前
【问题解决】用pnpm创建的 Vue3项目找不到 .eslintrc.js文件 及 后续的eslint配置的解决办法
javascript·vue.js·pnpm·eslint
前端架构师-老李19 小时前
React 中 useCallback 的基本使用和原理解析
前端·react.js·前端框架
雪域迷影19 小时前
C#中通过get请求获取api.open-meteo.com网站的天气数据
开发语言·http·c#·get
yue00819 小时前
C#类继承
java·开发语言·c#