這可能是一個愚蠢的問題,但我花了太久不知道原因。爲什麼二維數組訪問器[列] [行]而不是[行] [列]格式?
全部通過數學課,我們學會把座標放在(x,y)時尚。它深入我們的腦海。現在輸入C/C++並訪問x = 0,y = 3元素,我必須做data[0][3]
而不是data[3][0]
。
爲什麼數組訪問是(y,x)格式而不是(x,y)?
有沒有特別的理由呢,還是我不得不接受並繼續我的生活?
編輯: 我正在看邁克阿克頓(http://gdcvault.com/play/1021866/Code-Clinic-2015-How-to),他談到了關於行主要訪問和列重大的訪問性能這一GDC演講。它是可以理解的,因爲任何數組都是順序存儲器,如果我嘗試執行列主要訪問,則需要時間跳轉到不同的內存位置。
但它是行列格式... – Cristy
這就是當你按照行優先順序存儲數組時發生的情況。過去有很好的理由來做這件事,例如。在光柵顯示器上顯示圖像。如果這是你覺得你確實需要的東西,那麼沒有什麼可以停下來把你自己的數組按照專欄順序排列。 – Rook
'int array [HEIGHT] [WIDTH]'=>'array [y] [x]','int array [WIDTH] [HEIGHT]'=>'array [x] [y]' – 0x5453