[問題] STL/CLR 的二維容器的值取代之問題

看板C_and_CPP作者 (雲伴風 風隨雲)時間11年前 (2012/11/01 00:26), 編輯推噓0(0015)
留言15則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) visual C++ 2010 Windows Form 專案 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) #include <cliext/vector> #include <cliext/algorithm> 問題(Question): 各位好,想請教關於 STL/CLR 的vector內的值之取代的問題, 如果我宣告的是一維的vector,則可以用中括號更改內容,ex: vector<int> a; a.push_back(0); a[0]=5; //cout之後的確已經被改成5 但如果我宣告的是二維的vector,則無法用中括號更改內容,ex: vector< vector<int> > b;//宣告二維的vector vector<int> temp; //宣告一維的vector temp.push(0); //一維的vector丟值 temp.push(1); //一維的vector丟值 b.push_back(temp); //將一維的vector丟到二維的vector b[0][1]=5; //cout之後,無法用中括號更改內容,仍是1 ?? 餵入的資料(Input): b[0][1]=1 預期的正確結果(Expected Output): b[0][1]=5 錯誤結果(Wrong Output): b[0][1]=1 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.82.254 ※ 編輯: bbbbbbjeff 來自: 140.116.82.254 (11/01 00:27)

11/01 00:36, , 1F

11/01 00:44, , 2F
你這個code用push也不會過
11/01 00:44, 2F

11/01 00:48, , 3F
回應1樓,要在CLR專案內喔,並始用 STL/CLR 的標頭檔,
11/01 00:48, 3F

11/01 00:48, , 4F
b.at(0)[1] = 5;
11/01 00:48, 4F

11/01 00:49, , 5F
你那個連結使用的是純STL,不是後來的STL/CLR
11/01 00:49, 5F

11/01 00:50, , 6F
回應diabloevagto,會過啦,我只寫重點的CODE ^^
11/01 00:50, 6F
※ 編輯: bbbbbbjeff 來自: 112.104.194.140 (11/01 00:52)

11/01 00:53, , 7F

11/01 00:55, , 8F
l大大,"結果: 尚未執行" ??
11/01 00:55, 8F

11/01 00:57, , 9F
ideone 可以選擇不要 run code
11/01 00:57, 9F

11/01 00:58, , 10F
你如果用 VC 開一個專案把 code 貼上是可以執行的。
11/01 00:58, 10F

11/01 00:59, , 11F
或是你可以直接把你的 b[0][1] 改成 b.at(0)[1] 試試看。
11/01 00:59, 11F

11/01 01:01, , 12F
我馬上試試
11/01 01:01, 12F

11/01 01:14, , 13F
可以了,原還是要用 b.at(0)[1]=5; 不是b[0][1]=5; ^^
11/01 01:14, 13F

11/01 01:15, , 14F
看來STL/CLR與STL在二維容器的用法上有差!
11/01 01:15, 14F

11/01 12:32, , 15F
用純stl不會過,看來我誤會了
11/01 12:32, 15F
文章代碼(AID): #1GaL59nV (C_and_CPP)