从数组中:
10 20 30 20 30 20 10 10 20
当您删除all时
20,您期望得到:
10 30 30 10 10
但是
std::remove只要移动项目,就可以使其余值未指定:
指向范围的新逻辑端和物理端之间的元素的迭代器仍可取消引用,但是元素本身具有未指定的值
这样就得到:
10 30 30 10 10 xx xx xx xx ^ pend
这说明了您的结果。
如果您需要删除项目,请致电
vec.erase(pend,vec.end()):
在调用remove之前,通常会先调用容器的擦除方法,该方法将擦除未指定的值并减小容器的物理大小以匹配其新的逻辑大小。



