[問題] 動態指定Vector大小

看板C_and_CPP作者 (不下棋)時間8年前 (2016/06/11 10:34), 編輯推噓3(305)
留言8則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2010 問題(Question): 我需要一個非矩形的二維陣列 假設往下是一維方向(已知,Rum-Time時決定) 往右是二維方向(未知,利用Vector的動態增長的特性),且長度不同 於是我宣告了std::vector<int> *machine; 這樣的型態 程式碼如下,不知道這樣用會有什麼問題嗎?(如Memory Leak之類的) 程式碼(Code):(請善用置底文網頁, 記得排版) class GA_Chromosome { std::vector<int> *machine; }; GA_Chromosome::GA_Chromosome() { //Run-time時動態決定大小 machine = new std::vector<int>[Size]; } GA_Chromosome::~GA_Chromosome() { //Clear Memory of Vector std::vector<int> zero; // zero(0); machine->swap(zero); delete [] machine; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.85.203 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1465612489.A.967.html

06/11 10:38, , 1F
可以用std::vector<std::vector<int>>
06/11 10:38, 1F

06/11 10:39, , 2F
搭配typedef可以讓std::vector<int>變得更好閱讀
06/11 10:39, 2F

06/11 17:53, , 3F
同樓上,可以用 vector.reserve() 在 runtime 預留空間
06/11 17:53, 3F

06/11 18:17, , 4F
他這種用法resize也行
06/11 18:17, 4F

06/12 21:25, , 5F
謝謝
06/12 21:25, 5F

06/13 00:00, , 6F
哇勒...太久沒寫 C++ 把 reserve 跟 resize 搞混了 = =
06/13 00:00, 6F

06/13 00:00, , 7F
抱歉..我應該要說的是 resize 才對 之前還有在寫 UVa 題
06/13 00:00, 7F

06/13 00:01, , 8F
目的時候都是用 resize
06/13 00:01, 8F
文章代碼(AID): #1NMtZ9bd (C_and_CPP)