[問題] 想請問c++有像c#可以矩陣擴增的語法嗎

看板C_and_CPP作者 (胖胖)時間10年前 (2014/05/08 16:06), 編輯推噓2(2030)
留言32則, 10人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我的意思是假如我有一個矩陣A=[1 2 3 4 5]矩陣不能更改 那我想要在矩陣前加入數值讓A=[O O O O 1 2 3 4 5] 是不是有什麼方法? 在書上很像沒有看過@@ 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.123.121.76 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1399536415.A.F14.html

05/08 16:08, , 1F
用std::vector
05/08 16:08, 1F

05/08 21:13, , 2F
重新配置記憶體?
05/08 21:13, 2F

05/08 21:19, , 3F
除了靜態陣列, 其他所有方法都可以吧.
05/08 21:19, 3F

05/08 23:46, , 4F
你的C++應該沒辦法
05/08 23:46, 4F

05/09 02:40, , 5F
1. 冷靜 2. c++沒有專門的語法
05/09 02:40, 5F

05/09 03:22, , 6F
不過還是覺得std::vector幫你處理掉大部份的operator[]
05/09 03:22, 6F

05/09 03:23, , 7F
的語意上問題 真的要說最佳解的話 這應該排得上候選 :D
05/09 03:23, 7F

05/09 03:50, , 8F
推vector是認真的嗎~
05/09 03:50, 8F

05/09 04:08, , 9F
相當認真啊...vector本來就可以這樣用 o_oa
05/09 04:08, 9F

05/09 04:09, , 10F
二維就用vector<vector<int> > 取值一樣可以c[a][b]
05/09 04:09, 10F

05/09 04:10, , 11F
vector唯一的問題就是邊界要自己管理(如果需要的話)
05/09 04:10, 11F

05/09 04:11, , 12F
然後vector很貼心的幫你用operator&讓你能轉回傳統array
05/09 04:11, 12F

05/09 04:12, , 13F
int* array = &v[0]; 好vector 不用嗎 XD
05/09 04:12, 13F

05/09 23:14, , 14F
GlobalReAlloc
05/09 23:14, 14F

05/10 03:33, , 15F
原問題是 prepend 耶, std::vector 超不適合好嗎...
05/10 03:33, 15F

05/10 13:04, , 16F
@uranusjr,借問題我想問一般若已基於陣列,功能必要加入
05/10 13:04, 16F

05/10 13:04, , 17F
prepend,會怎做? 是否沒什麼優化的空間了 ?
05/10 13:04, 17F

05/10 13:05, , 18F
我的作法頗暴力就是了 Orz
05/10 13:05, 18F

05/11 14:53, , 19F
vector可prepend 不過的確,效能會很糟糕....
05/11 14:53, 19F

05/11 20:33, , 20F
如果一定要記憶體位址連續那也沒什麼招了吧, 或許可以模
05/11 20:33, 20F

05/11 20:34, , 21F
仿 std::vector 自己做一個前後都 preallocate 的容器..?
05/11 20:34, 21F

05/11 21:44, , 22F
這個我以前做過 用circular buffer來實作std::vector
05/11 21:44, 22F

05/11 21:44, , 23F
的界面,然後跟std::vector一樣的記憶體雙倍策略
05/11 21:44, 23F

05/11 21:45, , 24F
然後用memory pool來處理所有的segment management
05/11 21:45, 24F

05/11 21:45, , 25F
我記得有人有做過類似的東西,不算少見。只是這太深了
05/11 21:45, 25F

05/11 21:46, , 26F
不過基本上要解決效率問題 circular buffer是個解
05/11 21:46, 26F

05/11 21:47, , 27F
有興趣可以做做看 反正vector source code都放在那給你
05/11 21:47, 27F

05/11 21:47, , 28F
抄,最麻煩的幾個部分如[]等等眉眉角角照著寫就好
05/11 21:47, 28F

05/11 21:48, , 29F
這東西真的要討論我覺得要去演算法版討論了 =P
05/11 21:48, 29F

05/11 23:09, , 30F
to樓上:為什麼不用std::deque就好 XD
05/11 23:09, 30F

05/12 11:37, , 31F
欸,對耶,當初是為什麼要搞的那麼麻煩(抱頭)
05/12 11:37, 31F

05/12 11:38, , 32F
是因為要放memory pool的關係嗎...
05/12 11:38, 32F
文章代碼(AID): #1JQpiVyK (C_and_CPP)
文章代碼(AID): #1JQpiVyK (C_and_CPP)