Fortran Coder

楼主: weixing1531
打印 上一主题 下一主题

[讨论] VB中Redim功能讨论

[复制链接]

127

帖子

35

主题

1

精华

大师

F 币
1153 元
贡献
592 点
跳转到指定楼层
楼主
发表于 2018-8-3 13:39:06 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
比如Redim Preserve比Fortran的
allocate功能强大,能保存数组之前的元素数值
Fortran如何实现类似功能?
链表?


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

127

帖子

35

主题

1

精华

大师

F 币
1153 元
贡献
592 点
沙发
 楼主| 发表于 2018-8-3 19:25:49 | 显示全部楼层
曲线解决
运行时不确定数组元素个数
用Redim Preserve很方便的

127

帖子

35

主题

1

精华

大师

F 币
1153 元
贡献
592 点
板凳
 楼主| 发表于 2018-8-24 12:39:18 | 显示全部楼层
无限多态class(*)都无法实现模板?

127

帖子

35

主题

1

精华

大师

F 币
1153 元
贡献
592 点
地板
 楼主| 发表于 2018-9-19 13:16:29 | 显示全部楼层
pasuka 发表于 2018-8-24 15:28
这个问题很有意思,特地费点时间去查找了一下
简易模板
https://stackoverflow.com/questions/23706742/t ...

看了源代码,作者几乎实现了STL所有功能
但是通过预处理实现的
模板类型T好象需要在预处理中修改

127

帖子

35

主题

1

精华

大师

F 币
1153 元
贡献
592 点
5#
 楼主| 发表于 2019-5-8 01:54:33 来自移动端 | 显示全部楼层
本帖最后由 weixing1531 于 2019-5-8 02:09 编辑

f2008好像可以直接实现
program main
  integer, parameter   :: ivp(*) = [1,2,3,4,5]
  integer, allocatable :: iv(:)
  integer :: i, ios, unit
  iv = [integer ::]
  open(newunit = unit, file='test.txt')
  do
    read(unit=unit,fmt=*,iostat=ios) i
    if(ios /= 0) exit
    iv = [iv,i]
  enddo
  close(unit)
  if(all(iv==ivp)) print*, 'pass'
end program

127

帖子

35

主题

1

精华

大师

F 币
1153 元
贡献
592 点
6#
 楼主| 发表于 2019-5-8 18:31:27 | 显示全部楼层
vvt 发表于 2019-5-8 08:30
嗯,递延数组。F2008新增的功能,但是能不用尽量不用,特别是大数组,重新分配的资源消耗还是很头疼的。 ...

试验了一下
递延数组在超大数组方面果然效率太差
比链表差多了
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-4 21:48

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表