vector中的erase方法跟algorithm的remove有什么区别?
2008-05-24 11:35
417 查看
vector中erase是真正删除了元素, 迭代器访问不到了。 algorithm中的remove只是简单的把要remove的元素移到了容器最后面,迭代器还是
可以访问到的。因为algorithm通过迭代器操作,不知道容器的内部结构,所以无法做到真正删除。
vector<int> array;
array.erase(remove(array.begin(),array.end(),6),array.end());
删除数组中所有元素等于6的元素
remove并不真正从容器中删除元素(容器大小并未改变),而是将每一个与value不相等的元素轮番赋值给first之后的空间,返回值FowardIterator 标示出重新整理后的最后元素的下一个位置。
可以访问到的。因为algorithm通过迭代器操作,不知道容器的内部结构,所以无法做到真正删除。
vector<int> array;
array.erase(remove(array.begin(),array.end(),6),array.end());
删除数组中所有元素等于6的元素
remove并不真正从容器中删除元素(容器大小并未改变),而是将每一个与value不相等的元素轮番赋值给first之后的空间,返回值FowardIterator 标示出重新整理后的最后元素的下一个位置。
相关文章推荐
- JAVA中vector的remove和removeelementat这两个方法有什么区别?
- vector中的erase方法跟algorithm的remove
- C++中Vector的erase()操作以及与remove的区别
- poll() 方法和 remove() 方法的区别?Java 中 LinkedHashMap 和 PriorityQueue 的区别是什么?
- STL:remove和erase区别
- leetcode-27. Remove Element--STL Vector remove()和erase()的使用
- init()方法里的这三个,有什么区别?this.getServletConfig().getInitParameter("username")+"----"+this.getServletConte
- thinkPHPM 与D方法具有什么区别
- 虚方法与抽象方法有什么区别
- Objc中类方法和实例方法有什么区别?
- 关于vector的erase删除操作的两种不同方法,在linux与visual studio的实现讨论
- vector::erase()方法的详细介绍及问题解答
- Hibernate 的Session 中的save()方法和persist()方法有什么区别
- 用setTimeout()方法来模拟setInterval()与setInterval()之间的什么区别?
- 容器,Map对象的遍历方法,HashMap与TreeMap区别,Vector、ArrayList、LinkedList区别
- Java的synchronized加在方法上或者对象上有什么区别?
- C#中子类对父类中虚方法的处理有重写(override)和覆盖(new),他们有什么区别?
- "=="和 equals 方法究竟有什么区别?
- 什么是方法覆盖(override)并说明方法覆盖与方法重载(overioad)的区别
- C#下 子类继承父类的虚方法后 使用override重写父类方法 和 不使用override重写有什么区别?