int main(){
std::map <int,char*> mapA;
mapA[1] = "55";
mapA[2] = "66";
mapA[3] = "77";
std::map<int,char*>::iterator it =
std::remove_if(mapA.begin(),
mapA.end(),
[](std::pair<int,char*> _p)
{
int i = _p.first;
return (i == 2);
});
mapA.erase(it,mapA.end());
return 0;
}
Не совсем понятно почему оно выдаёт
stl_pair.h:170: ошибка: assignment of read-only member 'std::pair<const int, char*>::first'
И как с этим бороться.
Здравствуйте, Аноним, Вы писали:
А>И как с этим бороться.
не используйте remove_if для (multi)map/set
правильный подход найдете здесь:
http://stackoverflow.com/questions/800955/remove-if-equivalent-for-stdmap