C++ STL 中 remove 和 erase 的区别

2025-03-20 21:52:43
推荐回答(1个)
回答1:

remove是逻辑上的删除,实际所在容器分配的内存大小没改变,只是把删除的元素移到了容器的最后并且重置end指向的位置。如果你知道容器末尾的指针的话,即使某元素remove了也查得到。
erase是物理上的删除,容器大小被改变,相当于把元素所占用的那一小点内存给格式化了。