擦除和删除组合的以下语法是什么意思?

时间:2012-12-14 07:51:03

标签: c++ containers erase

  

可能重复:
  Difference between erase and remove

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

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

是不是擦除并删除相同?在上面的例子中擦除和删除的具体功能是什么?

1 个答案:

答案 0 :(得分:10)

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

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

请参阅erase-remove idiom