将带有cmp函数的map传递给函数作为参数

passing map with cmp function to function as a parameter

本文关键字:函数 参数 map cmp      更新时间:2023-10-16

我得到了这个:

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);
}

所以,我试图将我的映射a传递给func,但得到了这个错误:

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

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

谢谢你们,伙计们!

尝试从func 的最后一个参数中删除struct单词

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

使用gcc(gcc)4.7.3成功编译代码,无论是否使用func中最后一个参数的struct