所以我知道这是非常基本的问题,但我无法弄清楚该怎么做。 这是我的代码:
IpResolver::ResolvedInfo IpResolver::resolveIp(const QString &ip)
{
ResolvedInfo rI;
if (_IpResolver.find(rI.ip) != _IpResolver.end())
return _IpResolver[ip];
_IpResolver[ip] = QString();
actualResolve(ip);
return rI.country;
}
有两个错误说: 1.没有运算符“=”匹配这些操作数,操作数类型是“IpResolver :: ResolvedInfo”和QString 2.没有合适的用户定义的从“QString”到“IpResolver :: ResolvedInfo”的转换
答案 0 :(得分:1)
你知道地图是什么吗?它存储项目,使用密钥访问它们。语法是:
map[key] = item;
写作时
_IpResolver[ip] = QString();
就像写作
map[key] = key;
没有多大意义,因为地图当前存储了一些IpResolver::ResolvedInfo
,正如你定义的那样,并且编译器会回忆你。