您好我想知道如何对Tkey变量为指针类型的地图进行排序。 有getName函数返回char *类型。所以我试着和strcmp比较。但是返回部分有一些错误。
struct Compare_P {
inline bool operator()(Person const& a, Person const& b) {
return (strcmp(a.getName(), b.getName())) < 0;
}
};
map<Person*, House*, Compare_P>A_List;
答案 0 :(得分:2)
您的map
密钥为Person*
,但Compare_P::operator()
为Person const&
。你可以通过定义
map<Person, House, Compare_P> A_List;
或通过正确的Compare_P
struct Compare_P {
bool operator()(Person const* a, Person const* b) {
return (strcmp(a->getName(), b->getName())) < 0;
}