gpt4 book ai didi

c++ - 连续分配大数据有好处吗?

转载 作者:太空宇宙 更新时间:2023-11-04 15:22:08 25 4
gpt4 key购买 nike

在我的程序中,我有以下 double 组:a1, a2, ..., am; b1, b2, ..., bm; c1, c2, ..., 厘米;它们是类的成员,长度均为 N,其中 m 和 N 在运行时已知。我将它们命名为 a、b 和 c 的原因是因为它们的含义不同,这就是它们在类外的访问方式。我想知道为它们分配内存的最佳方式是什么。我在想:

1) 将所有内容分配到一个大块中。像.. double *ALL = new double[3*N*m] 然后让一个成员函数使用指针算法返回一个指向请求部分的指针。

2) 创建每个大小为 m*N 的二维数组 A、B 和 C。

3) 使用 std::vector?但是由于 m 在运行时是已知的,所以我需要 vector 的 vector 。

或者我使用什么并不重要?我只是想知道什么是好的一般做法。

最佳答案

如果这三者都以某种方式联系起来,如果 a[i] 和 b[i] 之间存在任何关系,那么它们都应该存储在一起,最好是在一个结构中,用一个有意义且相关的名称来命名它们。这将使任何 future 的开发人员更容易理解,并确保默认情况下数组的长度始终正确。

这称为设计可供性,意思是对象或界面的结构在默认情况下适合按预期使用。试想一个以前从未见过代码的程序员将如何解释其目的,歧义越少越好。

编辑

重读我意识到您可能会询问某种内存优化(?),尽管它并不清楚。我仍然会说使用类似这样的东西,要么是类指针数组,要么是结构,具体取决于 N 的大小。

关于c++ - 连续分配大数据有好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16344093/

25 4 0
文章推荐: c++ - 将两个 vector 转换为 vector>
文章推荐: javascript - 用 jQuery 替换元素
文章推荐: jquery - 在 jQuery 中使用类时为父
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com