作者BBSealion (海狮)
看板EE_DSnP
标题[问题] ARRAY 的 RESET
时间Mon Dec 6 16:18:40 2010
在做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)
1F:推 timrau:3.很正常,所以平常使用vector又想要真的拿回预留的记忆体 12/06 20:48
2F:→ timrau:时就需要一些技巧.....like vector<int>(a).swap(a); 12/06 20:49
3F:→ timrau:甚至vector<int>().swap(vectorA); 12/06 20:49
4F:推 timrau:不然就得等整个object被拆掉的时候才能拿回记忆体了 12/06 20:51
5F:推 wintercobra:2.应该是全部向前顺移,并不会空下来,所以看起来的 12/07 22:43
6F:→ wintercobra:array size就会少一,erase第一个的话後面全部也顺移 12/07 22:43
7F:→ wintercobra:(囧,没看到下一篇...) 12/07 22:43