看板 C_and_CPP 關於我們 聯絡資訊
各位好, 我想弄一個 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
suhorng:推struct 04/30 22:21
firejox:推struct +1 04/30 22:24
※ 編輯: DJWS 來自: 59.115.158.5 (04/30 22:25)
tjjh89017:vector<vector<int>>這樣呢? 04/30 22:30
Dannvix:http://codepad.org/3FN3J1Mx 這樣不曉得有沒有比較好 04/30 22:34
yoco315:Solution: Use gcc-4.6, compiled with -std=c++0x 04/30 22:41
firejox:http://codepad.org/ZwjAEJ4q 這似乎也差不多... 04/30 23:13
yoco315:std::vector<std::array<5>>v; v.push_back({1,2,3,4,5}); 05/01 01:59
loveme00835:都忘了還有這東西 囧> 05/01 02:15
loveme00835:y 大你少一個型別引數 @"@ 05/01 02:17
yoco315:嗚嗚 偶錯了... 05/01 19:05
DJWS:謝謝各位 :) 05/01 21:23