liyy1234 发表于 2016-4-26 16:52:09

可变数组的问题

现在定义一个二维可变数组保存数据,但是两个的维度并不知道,在程序运行的过程中会不断的增加维度,这种情况,有什么好的思路解决吗?

li913 发表于 2016-4-26 17:41:12

本帖最后由 li913 于 2016-4-26 17:42 编辑

既然是二维数组,维度当然是2. 可变的只能是每一维的长度。定义两个数组A,B1、A、B分配内存
2、赋值A
3、b = a
4、重新分配a,即扩展a
5、 b赋值给a

fcode 发表于 2016-4-26 19:04:20

二维数组的维度是2,不能再增加了。不然就是三维数组了。
你想增加的应该是每个维度的大小

方法一:
像楼上这样,重新分配
方法二:
用指针链表
方法三:
用递延长度可分配数组(部分编译器支持,例如 NAG)
如:
real , allocatable :: a(:)
allocate(a(3))
a = !//长度为3
a = [ a , 4 , 5 ]!//长度增加为5

pasuka 发表于 2016-4-27 08:23:54

问题在于二维数组是否需要查询、插入、删除功能
统统不需要的话,单向链表就行,否则请上C++的vector等等容器
页: [1]
查看完整版本: 可变数组的问题