看板 EE_DSnP 關於我們 聯絡資訊
在做array的時候有些疑問 1. 我們做的list是仿造STL裡面的樣式然後稍作修改(insert方式不同和自動排序) 所以很好懂他應該要有甚麼樣的功能 但array呢?,也是仿造某個原有的功能嗎? 他似乎不像vector(vector沒有pop_front) 也不像一般的string a[5],造出來的array 2. 所以看解說是說我的array在pop_front物件的時候 其餘物件要全部往前面移動 (也就是a[1]會變成原先pop前的a[2]?) 但如果是erase其中一個物件 要把那個位置空下來嗎? (一般array會空下來吧?) 還是也要把後面的往前順移呢? 那如果是erase第一個物件呢? 3. 在constructor解說中說到For data deletions, the _capacity will remain unchanged clear中也提到DO NOT release its memory 也就是說即使我下了reset的指令 array的capacity也不會有所變動嗎? 這樣不會有點奇怪麼,好像有東西沒有reset到 ------ 感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.41.97 ※ 編輯: BBSealion 來自: 140.112.41.97 (12/06 16:25)
timrau:3.很正常,所以平常使用vector又想要真的拿回預留的記憶體 12/06 20:48
timrau:時就需要一些技巧.....like vector<int>(a).swap(a); 12/06 20:49
timrau:甚至vector<int>().swap(vectorA); 12/06 20:49
timrau:不然就得等整個object被拆掉的時候才能拿回記憶體了 12/06 20:51
wintercobra:2.應該是全部向前順移,並不會空下來,所以看起來的 12/07 22:43
wintercobra:array size就會少一,erase第一個的話後面全部也順移 12/07 22:43
wintercobra:(囧,沒看到下一篇...) 12/07 22:43