[問題] vector<int[5]> v;

看板C_and_CPP (C/C++)作者 (...)時間15年前 (2011/04/30 22:12), 編輯推噓1(1010)
留言11則, 7人參與, 最新討論串1/3 (看更多)
各位好, 我想弄一個 vector,每一格可以放一個大小為五的陣列, 可能會像這樣: vector<int[5]> v; v.push_back((int[5]){1,2,3,4,5}); v[0][3] = 3; 或者像這樣: vector<int[5]> v; int a[5] = {1,2,3,4,5}; v.push_back(a); v[0][3] = 3; 我用了上面兩種方式都無法成功編譯, 應該要怎麼做才好呢? (還是我應該乖乖用個struct把int[5]包起來...?) -------------------------------------- 補充一下, 這是我目前的做法: struct Array5 {int a[5];}; vector<Array5> v; v.push_back((Array5){{1,2,3,4,5}}); v[0].a[3] = 3; 取值時多了一個a,看起來不太直觀。 也不想因為這樣就再補寫一個operator[],變得更複雜。 所以想問問看有沒有讓程式碼更簡潔一點的做法。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.158.5

04/30 22:21, , 1F
推struct
04/30 22:21, 1F

04/30 22:24, , 2F
推struct +1
04/30 22:24, 2F
※ 編輯: DJWS 來自: 59.115.158.5 (04/30 22:25)

04/30 22:30, , 3F
vector<vector<int>>這樣呢?
04/30 22:30, 3F

04/30 22:34, , 4F
http://codepad.org/3FN3J1Mx 這樣不曉得有沒有比較好
04/30 22:34, 4F

04/30 22:41, , 5F
Solution: Use gcc-4.6, compiled with -std=c++0x
04/30 22:41, 5F

04/30 23:13, , 6F
http://codepad.org/ZwjAEJ4q 這似乎也差不多...
04/30 23:13, 6F

05/01 01:59, , 7F
std::vector<std::array<5>>v; v.push_back({1,2,3,4,5});
05/01 01:59, 7F

05/01 02:15, , 8F
都忘了還有這東西 囧>
05/01 02:15, 8F

05/01 02:17, , 9F
y 大你少一個型別引數 @"@
05/01 02:17, 9F

05/01 19:05, , 10F
嗚嗚 偶錯了...
05/01 19:05, 10F

05/01 21:23, , 11F
謝謝各位 :)
05/01 21:23, 11F
文章代碼(AID): #1Dl1ZXz1 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Dl1ZXz1 (C_and_CPP)