首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vector:erase的效率怎么

2012-03-07 
vector::erase的效率如何我想用vector char 代替字符数组.我的数组可能有100-10万个元素,经常执行的操作

vector::erase的效率如何
我想用vector <char> 代替字符数组.
我的数组可能有100-10万个元素,
经常执行的操作是插一些元素到它的后面,
从头删除一些元素.

我担心的是:vector::erase效率如何?会不会把后面所有的元素向前移?

另外:我这种情况用vector <char> 合适吗?谢谢


[解决办法]
如果仅仅是100万个char应该没有多大的问题,写个简单的程序试验下就可以了,但是注意开发环境,因为有人碰到过类似问题,如果是使用VC6的话,超过了3万多点以后使用其中的sort等函数会导致错误,所以建议使用VS2005等高级版本,VC6过于陈旧了点,不建议使用。


///////////
我担心的是:vector:erase效率如何?会不会把后面所有的元素向前移?
效率没有任何问题的,不要担心
[解决办法]
vector是连续内存容器,标准保证它的内存分配布局与标准C数组一样,你earse了其中一个元素,后面的显然会前移。
看你的需求,不如用deque
[解决办法]
使用deque效率好些吧
[解决办法]
还是看看《Effective STL》item 1吧,容器是要根据场合选取的,不是抓一个来就用的。
[解决办法]
根据你说得情况,deque好像更适合些

热点排行