无呼叫接线员

No Call Operator

本文关键字:接线员 呼叫      更新时间:2023-10-16
 struct Boy {
    map<string,int> girlLookUp;
    string Name;
 };
 struct Girl {
    map<string,int> boyLookUp;
    string Name;
 };
 int findSumBoyGirl(Boy a, Girl b)
 {
    Boy *p = &a;
    Girl *s = &b;
    int sum = p->girlLookUp(s->Name) + s->boyLookUp(p->Name); "----Error----"
    return sum;
 }

我试图通过查找每个人的异性姓名来检索相关的性别值。当我这样做时,我收到一个错误"地图不提供呼叫运营商"。我不明白这个警告的上下文。难道不能做我正在尝试的事情吗?

你想使用map::operator[] .这意味着你应该有

p->girlLookUp[s->Name] + s->boyLookUp[p->Name];

它认为您正在尝试使用operator()(),它不会重载std::map。要么使用 operator[],要么如果您有 C++11,at .即,

Girl girl;
girl.boyLookUp["hi"];
girl.boyLookUp.at("hi");