此问题在此处已有答案:
Stack Overflow Exception when declaring multidimensional arrays(3个答案)
stack overflow error in C++ program(2个答案)
Maximum size of local array variable(4个回答)
Getting a stack overflow exception when declaring a large array(7个回答)
Segmentation fault on large array sizes(7个回答)
5年前关闭。
我的模拟试图预测系统在很长一段时间内的需求.
数组的大小将是25 x4 x3 x20000,我需要它至少是一个(无符号整数),但我知道堆栈不能处理这个数据量。
unsigned int ar[25][4][3][2000];
字符串
我一直在四处寻找,并找到了不同的解决方案。然而,我仍然没有决定实施哪一个。所以我的问题是:哪一个在性能和良好实践方面更好:
1.**使用数组的向量:**如stackoverflow.com/questions/18991765中所述.但如何转换为4D维度有什么想法吗?
第一个月
1.使用4D vector和push_back():我没有使用这个,因为我知道数组的最终大小,我想防止许多push_backs操作。
1.在堆上创建数组:如stackoverflow.com/questions/675817所述
任何其他建议都很感激!
1条答案
按热度按时间xqnpmsa81#
最大的问题是最后一个维度的
[2000]
。只是让它成为动态的。让你的3D数组像这样:
字符串
然后是第四维的向量:
型