[問題] 動態配置的三維陣列可以插入新元素嗎?

看板C_and_CPP (C/C++)作者 (路人)時間13年前 (2012/12/05 02:33), 編輯推噓2(208)
留言10則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) visual c++ 問題(Question): 如果建好一個三維矩陣,可否新增一個或一列值? 程式碼(Code):(請善用置底文網頁, 記得排版) #include <iostream> #include <stdlib.h> #include <stdio.h> #include <limits> #include <ctype.h> #include <cstring> #include <string> using namespace std; int main() { int m=0,n=0,r=0; //初始化陣列用 int ***a=0; //宣告陣列用 //動態配置三維陣列。 a=new int**[m]; for(int i=0;i<m;i++) { a[i]=new int *[n]; for(int j=0;j<n;j++) { a[i][j]=new int [r]; } } //初始矩陣,各元素=0~2,以亂數決定。 for(int i=0;i<m;i++) for(int j=0;j<n;j++) for(int k=0;k<r;k++) { *(*(*(a+i)+j)+k)=(rand()) % 3; } system("pause"); return 0; } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.254.53.207

12/05 02:46, , 1F
應該可以吧。
12/05 02:46, 1F

12/05 05:46, , 2F
你是要怎麼加?
12/05 05:46, 2F

12/05 06:40, , 3F
三維一次應該至少增加一個面,不然就不像陣列了。
12/05 06:40, 3F

12/05 12:37, , 4F
可以 不一定要補齊吧,就算是二維也有不補齊的寫法
12/05 12:37, 4F

12/05 18:59, , 5F
二維不補齊的話不就變成 array of array 了嗎?
12/05 18:59, 5F

12/05 19:00, , 6F
不過原 PO 目前的寫法的確是 array of array of array
12/05 19:00, 6F

12/05 23:17, , 7F
如果我想在某個位置之後新增一個資料,需要new新的記憶
12/05 23:17, 7F

12/05 23:18, , 8F
體嗎? 我想插入一維的一個新資料
12/05 23:18, 8F

12/06 03:35, , 9F
我是覺得用std::list包std::map::pair會簡單多了 =P
12/06 03:35, 9F

12/12 21:22, , 10F
感謝樓上各位 最後用vector解決了
12/12 21:22, 10F
文章代碼(AID): #1Gla7g3D (C_and_CPP)
文章代碼(AID): #1Gla7g3D (C_and_CPP)