以下是類和容器如何使用stl從容器集中刪除自定義對象?
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;
}
};
如何從組具有一些名稱=「蘇瑞」刪除一個對象;
我做了什麼?
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文件(86) \ microsoft visual studio 10.0 \ vc \ include \ algorithm 1816
我在做什麼錯? 如何使用stl從容器集中刪除自定義對象?
我已經添加了比較也 – Suri