remove_if из map
От: Аноним  
Дата: 22.01.04 18:30
Оценка:
Как удалить элементы из мапы используюя 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<...> отсутствует оператор присвоения.
Как обойти такую проблему?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.