c++ - 以下结合了 erase 和 remove 的语法是什么意思?

标签 c++ containers erase

<分区>

Possible Duplicate:
Difference between erase and remove

假设我有一个容器....以下是什么意思。

c.erase(remove(c.begin(),c.end(),99),c.end());

删除和删除不是一样的吗?上面例子中erase和remove的具体作用是什么?

最佳答案

它从容器 c 中删除所有等于 99 的元素。

std::remove实际上并没有删除任何元素。它将所有感兴趣的元素移动到容器的第二部分,并返回一个指示其中第一部分的迭代器。然后 erase 成员函数采用迭代器范围来实际从容器中删除元素。

参见 erase-remove idiom .

关于c++ - 以下结合了 erase 和 remove 的语法是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13874654/

相关文章:

c++ - 将动态数组包装到 STL/Boost 容器中?

c++ - 我怎样才能实现删除方法?

security - 安全删除 eMMC 卡(BLKSECDISCARD 返回 EOPNOTSUPP)

c++ - 替换字符串中的子字符串 C++

C++:需要帮助理解运算符重载错误

amazon-web-services - AWS ECS Fargate-任务未运行

c++ - 删除使用 const_iterator 的 vector 的元素

c++ - 如何将 Git 克隆加载到 QtCreator

c++ - 谷歌测试 : error LNK2019: unresolved external symbol with Visual Studio 2013

c++ - 从另一个容器创建容器,在 C++ 中应用每个元素一些函数