What & How & Why

Arrays

Arrays in VEX Ver. 18.0 —-

相关注意事项

  • 数组可以通过 array[n] 的形式访问和修改。
  • Houdini VEX 不支持多维数组。

General Functions

Foreach

//功能:vex 的快速循环方式,与 C++ 的 for range 类似。
/* 使用 */
//Simple form:将每个数组元素都拷贝到用于定义的变量中。
foreach ([element_type] value; array) {}
//Enumerated form:该形式不但记录元素到变量中,也会记录元素的下标到 index中。
foreach (int index; element_type value; array) statement;
//e.g.
string days[] = { "Mon", "Tue", "Wed", "Thu", "Fri" }
foreach (int i; string name; days) {
    printf("Day number %d is %s", i, name);
}

Len

//注意:该函数功能与 Length() 完全不同。
//功能:返回指定对象的元素个数。
//返回:指定对象的长度,如果是 martix / vector,返回分量的数量。如果是 array,返回元素数量。如果是 string,返回字符的数量。
/* 使用 */
int len(v) //返回对象长度
int len(v[]) //返回数组长度

Pop

//功能:移除数组最后一个元素并返回该元素
//返回:被移除的元素
//下标可以使用负数,-1 代表最后一个元素。
/* 使用 */
<type>pop(<type>&array[]); // 移除并返回最后一个元素
<type> pop(<type>&array[], int index) //移除并返回指定下标元素。

Push

//功能:向 Array 中添加元素
/* 使用 */
//1.向数组的末尾添加一个元素
push(<type>&array[], <type>value);
//2.将两个数组组合为一个数组。目标数组将连接到源数组的末尾:
push(<type>&array[], <type>target[]);

Removeindex

//功能:按指定的 index 删除数组元素
/* 使用 */
<type> removeindex(<type>&array[], int index);