我的 xcode 项目中有一些复杂的类(在一个通用示例下方),似乎我已经达到了某种数据大小限制。我需要的数组大小不起作用,如果我减小数组大小代码可以工作(所以没有编程错误),但它对于我的计划来说太小了。
通过互联网阅读我发现这一定是堆栈大小的问题,并且大多数解决方案都说“将您的静态数组转换为动态数组”。
但是(1)对于多维数组(一些多达 5 到 10 维,因为它们监控多个自变量并且每种组合都是可能的)并不容易,并且(2)大多数数组嵌套在几个类中,这使得情况更糟.
我已经考虑过减少数据
- int 而不是 long 与一些智能换位......
- 将 c (0-100%) 的分辨率更改为 10% 的步长(因此 [100] 减少到 [10])
但一方面这可能会危及整体结果,另一方面该项目仍处于起步阶段,因此它将在下个月增长......这个数组大小问题迟早会出现......
在这里,我概括了显示 4 维数组(2x 2D)的代码。我猜大多数专业程序都使用更大的数组。所以必须有办法让这个工作......
//.h
class StatisticTable
{
public:
long Array1 [100][50];
long Array2 [100][50];
long Array3 [100][140];
};
class Statistic
{
public:
void WriteStatistic(short Parameter_a, short Parameter_b,
short Parameter_c, short Parameter_d);
short ReadStatistic(short Parameter_a, short Parameter_b,
short Parameter_c, short Parameter_d);
private:
StatisticTable Table[16][8];
};
//.cpp
void WriteStatistic(short a, short b, short c, short d)
{
for (int i=0; i<d, i++) {Table[a][b].Array1[c][i]++;}
for (int i=d; i<50, i++) {Table[a][b].Array2[c][i]++;}
//write some more stuff
return;
}