gpt4 book ai didi

multidimensional-array - 在Fortran 90中使用2d数组与派生类型的数组

转载 作者:行者123 更新时间:2023-12-04 08:41:18 25 4
gpt4 key购买 nike

假设您需要一个数组列表,每个数组具有相同的大小。使用2D数组在性能上是否更好:

integer, allocatable :: data(:,:)

或派生类型的数组:
type test
integer, allocatable :: content(:)
end type
type(test), allocatable :: data(:)

当然,对于不同大小的数组,我们别无选择。但是在两种情况下如何管理内存?另外,其中之一是良好的代码习惯吗?

最佳答案

通常,您想使用适合您的问题的最简单的数据结构。如果2D矩形阵列满足您的需要-并且对于大量科学计算问题,Fortran是一个很好的选择,那么它确实可以-那么,这就是您想要的选择。

2d数组在内存中将是连续的,由于缓存和较少的间接级别,通常这将使访问速度更快。 2d数组还允许您执行data = data * 2data = 0.之类的操作,而Arrayt-of-array方法不做[编辑添加:尽管IanH在注释中指出,您可以创建定义的类型和对这些类型的定义的操作,允许这个]。这些优点足够强大,即使您有“参差不齐的数组”,如果预期的行长范围不是那么大,有时也应考虑将其实现为矩形2d数组。

关于multidimensional-array - 在Fortran 90中使用2d数组与派生类型的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18187312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com