序
使用c++不可避免的要去使用和钻研stl。effective stl是教我们如何有效(更安全,更具有运行效率)的去使用stl的书,让我们成为更高产的程序员。
术语
标准序列容器: vector string deque list
标准关联容器: set multiset map multimap
remove 算法描述:查找的得到第一个元素的位置,然后从此位置开始遍历容器,将后面的元素依次前移,跳过和value相同值的元素,也就是说,所有和value相同值的元素都会被覆盖,而其他的元素都会依次前移。最后remove返回”指向最后一个 ‘有用’ 元素的iterator”,但是在remove算法过程中,并没有修改原容器的size,以及end()。但是从逻辑角度看,最后的[ 从remove得到的iterator_result, 容器的结尾end() ) 这个区间里面的元素已经没有意义了。所以这些元素不应该属于该容器了。remove算法能做的仅此而已,并没有删除这些无用的元素。
结论:移除容器里面的元素不应该使用remove算法,而是容器自己的方法erase()。