标签: c++ containers erase
可能重复: Difference between erase and remove
假设我有一个容器....以下是什么意思。
c.erase(remove(c.begin(),c.end(),99),c.end());
是不是擦除并删除相同?在上面的例子中擦除和删除的具体功能是什么?
答案 0 :(得分:10)
它从容器99中删除所有等于c的元素。
99
c
std::remove实际上并没有删除任何元素。它将所有感兴趣的元素移动到容器的第二部分,并返回一个指示第一部分的迭代器。然后erase成员函数采用迭代器范围来实际从容器中删除元素。
std::remove
erase
请参阅erase-remove idiom。