0
這是一個非常基本的問題。儘管如此,在線研究數十個半相關示例後,我還沒有找到解決方案。傳遞靜態二維數組的行以在C++中運行
我有一個二維數組,其大小在編譯時已知:double demPMFs[ NUM_DEM_PARAMS ][ NUM_AGE_CATEGORIES ]
。數組條目在程序的早期由輸入文件填充。我想在程序中稍後將單個行作爲一維數組傳遞給函數。我非常喜歡保持獨立的名稱爲每一行:
#define LSPAN_PMF demPMFs[0][]
#define FLEDGE_PMF demPMFs[1][]
#define PAIR_PMF demPMFs[2][]
#define BIRTH_AGE_PMF demPMFs[3][]
#define SPLIT_AGE_PMF demPMFs[4][]
(在這裏,NUM_DEM_PARAMS = 5;
)。下面是一個失敗的嘗試傳遞一個函數的功能:
int calcDeath(double demPMFs[][ NUM_AGE_CATEGORIES ]) {
int age_death = rmultinom(LSPAN_PMF, NUM_AGE_CATEGORIES);
return age_death;
}
int rmultinom(const double p_trans[], int numTrans)
// ...[code snipped]...
}
我收到有關原型的編譯器錯誤;我預計也會遇到const
聲明的問題。如果人們認爲他們是相關的,我可以詳細討論這些錯誤,但是我懷疑還有很多事情可以直接設定。
容器,你的意思是向量?我希望能夠使用預先存在的隨機數生成器,但是我想我也可以使它們超載來獲取向量輸入。感謝enum推薦;我沒有想到通過這麼深的B/C,它主要是在輸入蛋糕上結冰,可以這麼說。 – Sarah 2010-06-21 19:40:18
雖然我不確切知道如何使用您的數據; 'vector'或'map',可能與使用結構相結合可能會使其更具可讀性。 – 2010-06-21 19:43:26