删除指定元素
1 | vector< double > v1; |
2 | //….初始化代码 |
3 | vector< double >:: iterator i = find( v1.begin(),v1.end(), 3.0 ); |
4 | if ( i != v1.end() ) |
5 | { |
6 | v1.erase(i); |
7 | } |
这样就真的删除了么指定的元素了么?没有。其实只是内部的元素作了移动,vector的删除的时间复杂度是很高的。所以选择容器的时候,如果需要频繁在中间插入和删除元素,那选择vector就会影响效率了。
注意:插入或者删除操作会使得迭代器失效。
原则:使用erase-remove惯用法删除元素
1 | v1.erase( remove (v1.begin(), v1.end(), 3.0), v1.end() ); |
原创文章,转载请注明: 转载自C/C++程序员之家
本文链接地址: STL之vector的使用三(vector的删除)