推 JFLung9536: int[][] 08/03 18:43
→ JFLung9536: **ptr ? 08/03 18:44
→ moebear: int(*A)[N] = new int[N][N]; 08/03 19:57
→ moebear: 上面應該是你要的 配成靜態int A[10][10] 08/03 19:58
→ moebear: 也可以先做一個100的空間再切成二維陣列 08/03 19:59
推 jim1029: int (*A)[N] 08/03 20:00
恩恩,這樣就對了~謝謝大大,原來編譯器給的意思是這樣
推 kevin85421: int** A = new int* [N] ; 然後再用迴圈對int* new 一 08/03 22:38
→ kevin85421: 維的dynamic array 08/03 22:38
推 dzwei: 推樓上的用法 08/04 01:28
→ dzwei: 但是記得delete的時候也要迴圈 08/04 01:28
→ dzwei: 否則會造成memory fragment 08/04 01:28
這個做法我其實知道,不過感覺會多一個O(N)的時間
→ dzwei: 其實這個case可以考慮用c++的list 08/04 01:30
其實我是在寫競賽的題目要存矩陣,然後要做一些矩陣的運算,所以感覺list好像不太行,
加上我記得STL的list常數有點大(ry
推 dzwei: 如果你要講求效能的話可以這樣: 08/05 01:09
→ dzwei: int *ary = new int[sizeX * sizeY]; 08/05 01:09
→ dzwei: ary[y*sizeX + x] 08/05 01:10
對耶,也可以這樣~謝謝大大
→ dzwei: 但如果是團隊合作個人是不建議,一來不方便閱讀, 08/05 01:10
→ dzwei: 二來,你的case有必要連這麼一點點時間都要爭取嗎? 08/05 01:11
推 dzwei: 如果你很care時間的話,你還可以把上面第一個方法的迴圈 08/05 01:13
→ dzwei: 步份,開執行緒進行初始化,但是我目前做到現在的case 08/05 01:14
→ dzwei: (我只是個小小的研究生跟著老闆在接外面的case) 08/05 01:14
→ dzwei: 很少有情況,連那一點時間都要@@ 08/05 01:15
其實一般現實狀況是應該不太會有這麼刁鑽的情況,不過競賽就(ry
※ 編輯: oToToT (180.177.96.141), 08/06/2017 13:17:32
推 dzwei: 對了 剛剛上面那個ary[y*sizeX + x]在3維以上的陣列就會 08/06 23:47
→ dzwei: 很複雜,所以不建議用在高維振烈 08/06 23:47
→ dzwei: 參考這篇 08/06 23:48
推 dzwei: 我說的複雜是指 08/07 11:02
→ dzwei: 你今天想把它從2*3*4改成6*5*7 08/07 11:02
→ dzwei: 這種動態的改變size 08/07 11:02
推 AstralBrain: 競賽用直接在global開一塊夠大的就好 08/07 18:53
推 AstralBrain: 啊還有看起來你的N是常數 用tr1::array就行啦 08/07 23:51