C ++映射指针变量排序

时间:2017-05-16 13:45:23

标签: c++ stl

您好我想知道如何对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;

1 个答案:

答案 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;
  }