我正在查看 STL vector 的 API 文档,并注意到 vector 类上没有允许删除具有特定值的元素的方法。这似乎是一种常见的操作,而且没有内置的方法来执行此操作似乎很奇怪。
最佳答案
std::remove
实际上并没有从容器中删除元素:它将要删除的元素移动到容器的末尾,并返回可以传递给 container_type::erase
的新结束迭代器实际删除现在位于容器末尾的额外元素:
std::vector<int> vec;
// .. put in some values ..
int int_to_remove = n;
vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());
关于c++ - 如何从具有特定值的 STL vector 中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39912/