Как удалить элементы из мапы используюя remove_if.
Использую VC 7.0, STL.
Написал следующий пример:
typedef map<int, int > TMap;
typedef TMap::iterator TMapIterator;
typedef TMap::value_type TMapPair;
class TreshLesser
{
int min;
public:
TreshLesser(int min): min(min) {};
bool operator () (const TMapPair& elem) const { return elem.second <= min;}
};
int _tmain(int argc, _TCHAR* argv[])
{
TMap sampleMap;
for(int i=0; i < 10; i++)
{
sampleMap[i] = i;
}
TMapIterator it = remove_if(sampleMap.begin(), sampleMap.end(), TreshLesser(4));
sampleMap.erase(it, sampleMap.end());
}
Компилятор ругается на то, что в pair<...> отсутствует оператор присвоения.
Как обойти такую проблему?