c++ - 如何从具有特定值的 STL vector 中删除项目?

标签 c++ stl

我正在查看 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/

相关文章:

c++ - 为什么在使用 map.begin() 时迭代器会预递增?

c++ - 我可以使用 STL 进行二分查找吗?

c++ - 如何使 std::vector 类型安全

c++ - 如何在 qt creator 和 msvc 中使用 boost 正则表达式

php - 为什么在 C++ 中从十六进制字符串转换为 base36 字符串的结果与在 PHP 中相同操作的结果不同?

c++ - 决定在 random_device 和 seed_seq 之间生成多个随机数序列的种子

c++ - std::map 上的 make_heap 具有用户定义的比较和随机访问迭代器

c++ - tinyxml 无法正确解析 const char*

c++ - 无参数构造函数

c++ - 如何在 C++1z 中使用实验性并行 STL?