[問題] 多載= {{1,2,3},{3,4,4}}

看板C_and_CPP作者 (方格子)時間14年前 (2011/04/09 20:48), 編輯推噓5(5010)
留言15則, 7人參與, 最新討論串1/1
小弟現在想要寫一個矩陣的class 使用動態記憶體配置來建立矩陣 如果矩陣名稱是 A 那我希望可以有這樣給值的方法: MATRIX A(2,3); //表示一個2*3矩陣 A = {{1,2,3},{3,4,4}}; // 希望能夠像這樣子給值 但不曉得我的多載=要怎麼寫 可以替我指引一個方向嗎? 謝謝 --

老闆都不懂.. ( ′-`)y-~

這裡禁煙喔XDDDD
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.125.213

04/09 21:01, , 1F
大括號給值的方式好像只能在定義並初始化陣列時用吧?
04/09 21:01, 1F
那有沒有其他可以一次給值的方法呢? 恩... A=(1,2,3,3,4,4); 這種呢? ※ 編輯: annheilong 來自: 61.228.125.213 (04/09 21:04)

04/09 21:25, , 2F
stdarg?
04/09 21:25, 2F

04/09 21:27, , 3F
在非初始化的地方用大括號 並不是標準寫法
04/09 21:27, 3F

04/09 21:33, , 4F
可以 A << 1 << 2 << 3 << 3 << 4 << 4; 學 stringstream
04/09 21:33, 4F

04/09 21:38, , 5F

04/09 21:42, , 6F
http://codepad.org/YEePm2gw 可以借重C++0x的支援
04/09 21:42, 6F

04/09 21:42, , 7F
仔細閱讀 std::initializer_lis 類別, 但這代表你要換
04/09 21:42, 7F

04/09 21:42, , 8F
編譯器才能寫
04/09 21:42, 8F

04/09 21:43, , 9F
更正 → std::initializer_list
04/09 21:43, 9F

04/09 21:44, , 10F
或者是gnu++0x
04/09 21:44, 10F

04/09 21:51, , 11F
一次給值不就不能分辨行列是多少了嗎?
04/09 21:51, 11F
因為我在宣告的時候就已經知道是幾乘幾的陣列 所以一次給值並沒有這個問題

04/09 21:52, , 12F
我忘了加 return *this; 拍謝ˊˋ
04/09 21:52, 12F

04/09 21:52, , 13F
保險一點是開一維再加判斷
04/09 21:52, 13F
※ 編輯: annheilong 來自: 61.228.125.213 (04/09 22:13)

04/09 22:36, , 14F
可以試著先定義row or column obj for matrix
04/09 22:36, 14F

04/10 09:19, , 15F
int values[][3] = {{1, 2, 3}, {4, 5, 6}}; A = values;
04/10 09:19, 15F
文章代碼(AID): #1De5MvjI (C_and_CPP)