用cmp函数传递map作为参数

时间:2013-12-03 08:58:56

标签: c++ map

我有这个:

struct cmp_a_func {
   public:
   bool operator()(const char* a, const char* b) const {
      return std::strcmp(a, b) < 0;
   }
};

void func(std::map<const char *, const char *, struct cmp_a_func>& a) {
}

int main() {
    std::map<const char *, const char *, cmp_a_func> a;

    func(a);
}

所以,我正在尝试将我的地图传递给func,但是得到了这个错误:

  

错误:没有匹配函数来调用func(std::map<const char*, const char*, cmp_a_func>&)

编辑:现在修复 - 我,愚蠢的金发女郎,没有在标题中更新原型函数: void func(std :: map&amp; clients);

谢谢你们,伙计们!

2 个答案:

答案 0 :(得分:0)

尝试从struct

中的最后一个参数中删除func个字词
void func(std::map<const char *, const char *, cmp_a_func>& a)

答案 1 :(得分:0)

使用gcc(GCC)4.7.3成功编译代码,使用struct中最后一个参数的func或不{{1}}。