我试图弄清楚 boost::multi_array 构造函数或 resize 方法是否会引发 bad_alloc 异常(或其他一些指示分配或调整大小失败的异常)。我在任何地方的文档中都找不到此信息。
澄清(从评论中添加):
这是一种科学算法,如果分配失败,它可以退回到内存密集度较低(较慢)的方法。基本上,有两个动态分配的 3 维数组来保存查询中所有基因对之间的“距离”(相关性),以及针对大量数据集中的每一个的交叉验证集中的所有基因。较慢的方法会根据需要重新计算每个距离。这是针对现有 Java 实现的 C++ 版本的,它实现了这两种方法,并且会退回到内存不足异常。我真的不希望内存不足。