我已經閱讀了幾個與我可以在這裏找到的相同標題的主題,但我仍然不確定使此代碼工作的最佳方式是什麼。線程'<main>'溢出了它的堆棧
static
變量A_INTERSECTS_A
從下面的代碼返回錯誤。 這段代碼應該返回一個大的1356x1356 2d array
的bool
。
pub const A_COUNT: i32 = 1356;
lazy_static! {
pub static ref A_VALUES: [A; A_COUNT as usize] = {/*some irrelevant(?) code here*/}
pub static ref A_INTERSECTS_A: [[bool; A_COUNT as usize]; A_COUNT as usize] = {
let mut result = [[false; A_COUNT as usize]; A_COUNT as usize];
for item_one in A_VALUES.iter() {
for item_two in A_VALUES.iter() {
if item_one.field_a[0].ordinal == item_two.field_a[0].ordinal ||
item_one.field_a[0].ordinal == item_two.field_a[1].ordinal ||
item_one.field_a[1].ordinal == item_two.field_a[0].ordinal ||
item_one.field_a[1].ordinal == item_two.field_a[1].ordinal {
result[item_one.ordinal as usize][item_two.ordinal as usize] = true;
}
}
}
result
};
}
不知道,如果是相關的,胸圍struct A
是一個自定義的結構與其他struct
內:
pub struct A {
pub field_a: [struct B; 2],
pub field_b: i32,
}
我見過的人處理這在大名單實施Drop
的結構,但在我的列表中沒有任何結構,你不能爲bool實現它。
如果我將A_INTERSECTS_A: [[bool; A_COUNT as usize]; A_COUNT as usize]
更改爲A_INTERSECTS_A: Box<Vec<Vec<bool>>>
代碼正常工作。但我真的想在這裏使用一個數組。任何意見,將不勝感激,謝謝。
是的,我嘗試使用「盒::新」,它沒有工作。不知道「盒子」。謝謝,現在有道理。 – ehsisthatsweird