Fortran Coder
标题:
可变数组的问题
[打印本页]
作者:
liyy1234
时间:
2016-4-26 16:52
标题:
可变数组的问题
现在定义一个二维可变数组保存数据,但是两个的维度并不知道,在程序运行的过程中会不断的增加维度,这种情况,有什么好的思路解决吗?
作者:
li913
时间:
2016-4-26 17:41
本帖最后由 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
二维数组的维度是2,不能再增加了。不然就是三维数组了。
你想增加的应该是每个维度的大小
方法一:
像楼上这样,重新分配
方法二:
用指针链表
方法三:
用递延长度可分配数组(部分编译器支持,例如 NAG)
如:
[Fortran]
纯文本查看
复制代码
real , allocatable :: a(:)
allocate(a(3))
a = [1,2,3] !//长度为3
a = [ a , 4 , 5 ] !//长度增加为5
作者:
pasuka
时间:
2016-4-27 08:23
问题在于二维数组是否需要查询、插入、删除功能
统统不需要的话,单向链表就行,否则请上C++的vector等等容器
欢迎光临 Fortran Coder (http://bbs.fcode.cn/)
Powered by Discuz! X3.2