1. 二维数据转换为一维
所谓一维就是一条线,线上的每个点的位置可以用一个坐标值来表示,所以叫一维数据。
而二维就是一个平面,平面中的某个点的位置可以用两个坐标值来表示,所以叫二维数据。
同理,三维就是一个立方体,而立方体内的某个位置则需要三个坐标值来表示,所以叫三维数据。
比方说,电影院的座位如果只有一行,电影票上只需要印上xx号就可以让人找到座位了,这就是一维数据;如果座位继续增加,一行不够了,就要改成多排的,电影票上要印xx排xx号才能让持票人找到自己座位,这就是二维数据;座位继续增加,一楼不够放了,就要增加楼层,这样电影票上就要印xx楼xx排xx号才行了,这就是三维数据。
我们生活的这个世界就是个三维空间。
2. 二维数据怎么转换成一维数据
可以采用两种方式:
1 按元素赋值:
遍历一维数组,并将每个元素赋值到二维数组的对应元素上。
或者遍历二维数组,将每个元素赋值为一维数组对应值上。
优点为操作灵活,可以按照需要任意赋值。
2 当一维数组和二维数组类型相同,而且赋值顺序与一维数组中的存储顺序完全相同时,可以用memcpy的方式,直接一次性赋值。
如一维数组为a,二维数组为b,基础类型为TYPE,需赋值元素个数为n,可以调用
memcpy(b,a,sizeof(TYPE)*n);
该方法有点为操作简单,执行效率高。
不过所需满足的前提条件多。在满足上述所有条件时,用memcpy的方式更为简单。
3. 二维数据表转一维数据表
一维给二维赋值,参考实例如下: for (i = 0; i < 10; i++) { for (j = 0; j < max; j++) { scanf("%d", &a[j]); } strncpy(b[i], a, max); //memcpy(b[i], a, max); } 二维数组赋值有两种方法, 第一种方法是单元格区域装入二维数组,如: Arr=range("a1:b19")就可以把单元格区域的值装入数组arr 第二种就是通过循环装入,一个个数值装入。 例: 向二维数组写入数据和读取; Dim x As Integer, y As Integer Dim arr(1 To 5, 1 To 4) For x = 1 To 5
4. 二维数据转换为一维数组
ReDim 语句通常用于指定或修改动态数组的大小,这些数组已用带有空括号的 Private、Public 或 Dim 语句(没有维数下标)正式声明过。
可以重复使用 ReDim 语句更改数组维数和元素数目。如果使用了 Preserve 关键字,就只能调整数组最后维的大小,并且不能改变数组的维数。例如,如果数组只有一维,就可以修改该数组的大小,因为该维是最后的也是仅有的一维。但是,如果数组有两个或更多维,就只能改变末维的大小并保留数组内容。这个例子说明如何不擦掉该数组中存在的数据,而增加动态数组的终止维数。ReDim X(10, 10, 10) . . . ReDim Preserve X(10, 10, 15) 小心 如果减小数组的大小,则将丢失被排除的元素中的数据。5. 二维数据转换一维数据
一维数组和二维数组区别:单行或单列的数组,称为一维数组,多行多列(含2行2列)的数组是二维数组。所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。
- 相关评论
- 我要评论
-