A-A+

STL之vector的使用三(vector的删除)

2013年07月14日 STL 暂无评论 阅读 128 次

删除指定元素

[cpp]

vector<double> v1;
//….初始化代码
vector<double>:: iterator i = find( v1.begin(),v1.end(), 3.0 );
if( i != v1.end() )
{
v1.erase(i);
}

[/cpp]

这样就真的删除了么指定的元素了么?没有。其实只是内部的元素作了移动,vector的删除的时间复杂度是很高的。所以选择容器的时候,如果需要频繁在中间插入和删除元素,那选择vector就会影响效率了。

注意:插入或者删除操作会使得迭代器失效。
原则:使用erase-remove惯用法删除元素

[cpp]v1.erase( remove(v1.begin(), v1.end(), 3.0),  v1.end() );[/cpp]

标签:

给我留言

Copyright © C/C++程序员之家 保留所有权利.   Theme  Ality 浙ICP备15011757号-3

用户登录