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

Sai*_*ran 4 c++ containers erase

可能重复:
擦除和删除之间的差异

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

c.erase(remove(c.begin(),c.end(),99),c.end());
Run Code Online (Sandbox Code Playgroud)

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

jua*_*nza 10

它删除所有99与容器相等的元素c.

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

请参阅erase-remove成语.