我試圖找出boost :: multi_array構造函數或resize方法是否可以拋出bad_alloc異常(或其他異常,指示分配或調整大小失敗)。我無法在任何地方找到這些信息。boost :: multi_array調整大小異常?
澄清(從評論中加入):
這是一個科學算法如果分配失敗,可以回退到更少內存密集型(更慢)的方法。基本上有兩個動態分配的三維陣列,用於保存查詢中所有基因對之間的「距離」(相關性)以及大量數據集中每個數據集的交叉驗證集中的所有基因。根據需要,較慢的方法會重新計算每個距離。這是針對現有Java實現的C++版本,它實現了這兩種方法,並且會回退到內存不足異常。我真的不希望內存不足。
看到我上面的評論,該算法,由原始研究人員在Java中實現,支持兩種方法。如果不能分配足夠的內存,則使用較慢的一個。我期待爲C++版本重新創建此行爲,但我通常不希望內存不足。當我們發現我的C++實現在內存方面比舊版Java更有效時,我們已經擺脫了程序使用的另一種算法的這種退步。 – Glen 2010-03-24 11:21:55