目录
一,声明数组类型
通用格式:member_type var_name [ ]
- 可在[ ]添加尺寸大小数字,但vex编译器会忽略此数字;
- 在声明函数返回数组时,关键字function不可省略;
//声明变量
float my_array[];
vector vector_array[];
string str_array[];
//声明函数返回数组时,关键字function不可省略
function int[] myarray(int x,y){
int tmp[] = array(x, y);
return tmp;
}
printf("%d",myarray(1,2));
初始化
- 初始化时可不给初始值,不会报警或报错,默认为空数组;
- 可使用大括号{}初始化,成员用逗号隔开;因其是在编译时构造的,所以初始化值不可包含变量;
- 也可使用array()函数,此函数是在运行时构造数组的,则可以使用变量;
vector an_array[] = { {1, 2, 3}, {2, 3, 4}, {4, 5, 6} };
function vector[] rgb_array() {return { {1, 0, 0}, {0, 1, 0}, {0, 0, 1} };}
string arr[] = {'ab', "cd"};
//使用array创建数组
int a,b,c,d;
a=b=c=d=1;
int my_array[] = array(a, b, c, d);
//指定标量值给矢量,则所有分量均为该标量值
vector an_array[] = {1, 2, 3};
//等价于an_array[] == { {1, 1, 1}, {2, 2, 2}, {3, 3, 3} }
二,访问与设置数组
使用格式:arrayname [index]
- 边界会在运行时检测,超出边界的访问会返回0或“”;可能会生成警告或运行时错误;
- 超出边界的写入,将重置数组尺寸以适应数组大小;
- 类似python风格的索引,意味着负索引将从数组末尾开始;
- 此格式即可访问也可设置值,等价于getcomp、setcomp函数;
- 也适用于vector和matrix类型;
//访问
int nums[] = { 0, 1, 2, 3, 4, 5 };
int n = nums[10]; // Returns 0
int b = nums[-2]; // Returns 4
string strs[] = { };
string s = strs[20]; //超边界访问 Returns ""
//访问matrix
float a = m3[0][1];
//访问和设置函数
int a[] = {1,2,3};
int b = getcomp(a,1); //类似a[1]
setcomp(a, 22, 1); //类似a[1]=22
三,数组切片
可使用类似python切片的方法,提取子数组,等同于s
VEX语言中的数组操作指南

文章详细介绍了VEX语言中如何声明和使用数组,包括声明数组类型、初始化、访问与设置元素、切片、在数组和向量/矩阵间复制、循环遍历以及数组函数的运用,并提到了一些局限性,如不支持多维数组等。
最低0.47元/天 解锁文章
1199

被折叠的 条评论
为什么被折叠?



