Я хочу стереть некоторые элементы в моем std :: map.
Я написал технику erase + remove_if, которую я всегда использую с другими контейнерами последовательностей.
Но это не было скомпилировано с картой. Почему?
И как я могу выполнить эту работу?
std::map<int, int> m;
bool foo(const std::pair<int, int>& p)
{
return p.second > 15;
}
int _tmain(int argc, _TCHAR* argv[])
{
m.insert(make_pair(0, 0));
m.insert(make_pair(1, 10));
m.insert(make_pair(2, 20));
m.insert(make_pair(3, 30));
m.erase(
remove_if(m.begin(), m.end(), foo),
m.end()); // compile error
return 0;
}