如下圖所示,我的C++代碼中有兩個庫,它們使用不同的索引語法,一個以0開頭,另一個以1開頭。 C++代碼非常複雜,這種差異對我來說非常麻煩。我想知道是否有人遇到過這種麻煩,如果有這個竅門。我不知道,例如有沒有一種方法可以使它們具有相同的索引語法!!C++索引語法:兩個庫使用不同的索引語法:基於0和基於1的索引
我sloved的問題是這樣的:
#define KFULL(row,col) kFull(row+1,col+1)
AG_Matrix kFull(4,4,5.0);
std::cout<<kFull(1,1)<<'\n';//prints 5
std::cout<<kFull(0,0)<<'\n';//prints garbage value
std::cout<<KFULL(0,0)<<'\n';//prints 5
int i=int(0);int j=int(0);
std::cout<<KFULL(i,j)<<'\n';//prints 5
所以每次我宣佈AG_Matrix
類的對象的時候,我也定義一個宏爲對象注意基於0和1的索引問題。這個解決方案是由其中一個簡單工作的人之一建議的。
這有什麼好做的語法。它是圖書館開發者的選擇,實際上你可以做的事情並不多。除了包裝他們自己,讓他們一致行爲與0或1爲基礎的索引。 – Borgleader 2014-09-25 18:06:36
@Borgleader謝謝。你是對的。 – user3405291 2014-09-25 18:19:46
真正的解決方案是儘可能地從代碼中移除使用基於1的矩陣類。 – 2014-09-25 20:38:43