我需要根據用戶的輸入存儲一些數據。我的程序應該根據我從cin得到的int值創建不同的數據結構。如何用用戶指定的尺寸創建矩陣
例如,0存儲一個標量的值,1 - 矢量,2 - 2dArray,3 - 3dArray,4 - 四維陣列等等...
我的問題是,是否有可能編寫一些代碼將做到這一點。
我知道這可能聽起來很混亂,所以我會再提供一些例子。假設用戶輸入0 5,那麼我的程序應該創建一個int變量並存儲5個變量。
如果用戶輸入1 5,7,6,我的程序應該創建一個vector = {5,7,6};
如果用戶輸入2 2,3 1,2,3,4,5,6我的程序應該創建一個2d數組a [2] [3]並將值存儲在那裏。
我能想出一個解決方案,如果我知道尺寸的用戶都將有最大數量,但分配的目標是,可以指定任意數量的維度......
請幫助
嗯,不,這是不可能的,除非你定義維數的限制,因爲它將無限遞歸(一個n維數組是一個(n-1)維數組的數組,所以做你的想要一個無限遞歸的類型定義,除非你指定了一個邊界)。你可以做的是使用單維數組(或矢量)和管理索引來模擬你所尋找的行爲。實際上,很少有真實應用程序需要10個或更多維度,而且這樣的陣列的內存使用量將很快超過可用內存。 – Peter
我也在考慮仿真。請您詳細介紹一下嗎?你將如何實現它? – kozouu
分配一個大小等於維度乘積的數組。它具有多維數組所具有的元素數目。計算一組索引和一維數組中索引之間的映射。 – Peter