此代码具有Visual Studio error C3892
。如果我将std::set
更改为std::vector
- 它可以工作。C++ std :: set ::使用std :: remove_if擦除::
std::set<int> a;
a.erase(std::remove_if(a.begin(), a.end(), [](int item)
{
return item == 10;
}), a.end());
怎么了?为什么我不能使用std::remove_if
和std::set
?
可能的重复[擦除删除成语与std ::设置失败与constness相关的错误](http://stackoverflow.com/questions/3792600/erase-remove-idiom-with-stdset-failing-with- constness-related-error) – legends2k