在C++中,我感到非常不方便,因爲C++沒有內置功能在運行時爲多維數組動態分配內存。爲什麼C++沒有一種方便的方式爲多維數組動態分配內存?
在Java中,我們可以通過一行代碼來完成。例如,在Java中,我們可以動態分配內存四維整數數組
int a, b, c, d;
std::cin>>a>>b>>c>>d;
int[ ][ ][ ][ ] array = new int[a][b][c][d];
我用Google搜索的解決方案,以做同樣的事情在C++中。但我發現,在C++中,我們必須使用嵌套的循環,容器或一些具有函數的結構來實現相同的功能。既然這樣的語法功能會非常方便,我想問問爲什麼C++沒有包含這樣的內置功能?
有趣有趣的事實:即四維陣列中的Java?它不是一個4D陣列。它是由整數數組組成的數組數組。由於每個動態分配的子數組之間沒有連接,因此可能會非常緩慢。 CPU從一個分配跳轉到下一個分配,並且從未從所有預加載到緩存中的連續數據中獲取速度。可怕的嵌套循環C++解決方案做同樣的事情,它是可怕的。除非你需要鋸齒狀的數組,否則不要用任何一種語言來完成。圍繞處理索引的一維數組進行封裝。 – user4581301
下面是一個示例:https://isocpp.org/wiki/faq/operator-overloading#matrix-subscript-op – user4581301