看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
ilikekotomi: 可以用std::vector<std::vector<int>> 06/11 10:38
ilikekotomi: 搭配typedef可以讓std::vector<int>變得更好閱讀 06/11 10:39
s25g5d4: 同樓上,可以用 vector.reserve() 在 runtime 預留空間 06/11 17:53
fatrabitree: 他這種用法resize也行 06/11 18:17
wu110011: 謝謝 06/12 21:25
s25g5d4: 哇勒...太久沒寫 C++ 把 reserve 跟 resize 搞混了 = = 06/13 00:00
s25g5d4: 抱歉..我應該要說的是 resize 才對 之前還有在寫 UVa 題 06/13 00:00
s25g5d4: 目的時候都是用 resize 06/13 00:01