作者DJWS (...)
看板C_and_CPP
標題[問題] vector<int[5]> v;
時間Sat Apr 30 22:12:46 2011
各位好,
我想弄一個 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
→ yoco315:Solution: Use gcc-4.6, compiled with -std=c++0x 04/30 22:41
推 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