Vector三維陣列動態宣告 |
尚未結案
|
typenew
一般會員 發表:8 回覆:17 積分:5 註冊:2004-03-26 發送簡訊給我 |
http://delphi.ktop.com.tw/topic.php?topic_id=59126
上面是我查到的相關文章,對於三維陣列的宣告,有提到是用resize(),小弟要宣告一個10*10*10的陣列如下所示:
vector雖然是可以執行存取沒有問題,但是感覺怪怪的,所以想請問不知道這樣是否正確。 |
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
引言: http://delphi.ktop.com.tw/topic.php?topic_id=59126 上面是我查到的相關文章,對於三維陣列的宣告,有提到是用resize(),小弟要宣告一個10*10*10的陣列如下所示:這樣宣告是可以的, 還可以簡化為vector雖然是可以執行存取沒有問題,但是感覺怪怪的,所以想請問不知道這樣是否正確。 vector |
iq
一般會員 發表:8 回覆:8 積分:3 註冊:2004-09-28 發送簡訊給我 |
關於這個問題小弟寫了一個練習,但有一點問題想請教
vector < vector
|
typenew
一般會員 發表:8 回覆:17 積分:5 註冊:2004-03-26 發送簡訊給我 |
引言: 關於這個問題小弟寫了一個練習,但有一點問題想請教Dear Sir: 那是因為push_back是在後面塞進去i j,依照你的code來說原本是3*4的array,再第二個for迴圈中因為你push四次,所以整個迴圈做完所產生的array是變成3*8的array,故你所push的數值都只在[i][4~7](i=0~2)裡面,ShowMessage出來只會看到"0"。 提外話不知道是不小心還是程式碼真的有錯b[i].push_back(i j);這行的b跟本沒有分配記憶體,就給值當然會有問題。 小弟拙見請多指教。vector < vector給值的方式好像就不能用push_back() 不知道這樣是不是有問題? |
iq
一般會員 發表:8 回覆:8 積分:3 註冊:2004-09-28 發送簡訊給我 |
感謝您的回答,
如果照您的說法,就是我resize完後,iterator會移到end的位置上。
如果我再push_back就會往後面加上去。
但是我又試了一下,發現原因好像都出在ShowMessage上,
似乎不能存取Data[i][j]。以下是source code
void __fastcall TForm1::Button1Click(TObject *Sender)
{ vector < vector
|
typenew
一般會員 發表:8 回覆:17 積分:5 註冊:2004-03-26 發送簡訊給我 |
引言: 感謝您的回答, 如果照您的說法,就是我resize完後,iterator會移到end的位置上。 如果我再push_back就會往後面加上去。 但是我又試了一下,發現原因好像都出在ShowMessage上, 似乎不能存取Data[i][j]。以下是source codeDear Sir: 這程式碼沒問題阿,小弟整個複製上去可以跑阿。請你在Debug看看吧。void __fastcall TForm1::Button1Click(TObject *Sender) { vector < vector < int > > Data; Data.resize(3); for(int i=0;i<3;i ) Data[i].resize(4); for (int i=0; i<3;i ) for (int j=0; j<4 ;j ) { Data[i].push_back(i j); ShowMessage(IntToStr(Data[i][j])); //只要有加這行,就會出現error } Application->Terminate(); } |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |