Ниже приведен класс и контейнер
class student {
std::string name;
int id;
}
set<Student*, compare> s; // sorted by id that i have done correctly
class compare {
public:
bool operator()( Student* s1, Student* s2) {
return s1->id < s2->id;
}
};
Как удалить из множества объект с каким-то именем = "suri";
Что я сделал?
std::remove(s.begin(), s.end(), nameIs("suri"));
функтор
struct nameIs {
nameIs ( std::string s ) : toFind(s) { }
bool operator() ( Student* st)
{ return st->name.compare(toFind) == 0; }
std::string toFind;
};
Но я получаю ошибку времени компиляции Ошибка 2 ошибка C3892: '_Next': вы не можете назначить константную переменную c:\program files (x86)\microsoft visual studio 10.0\vc\include\algorithm 1816
Что я делаю не так? Как удалить настроенный объект с помощью stl remove из набора контейнеров?