【发布时间】:2019-05-27 11:29:40
【问题描述】:
我在尝试读取配置文件时无法访问迭代器。我的代码是:
void requestPLC::write(QMap <QString, QVariant> map)
{
QMap<QString, QVariant>::iterator i;
for (i = map.begin(); i != map.end(); ++i)
{
mConfig->reqPLC->datatype.value(map[i]);
// do something here
}
}
我想要做的是遍历我的地图并从配置文件中选择相应的值。我的错误如下所示:
'operator[]' 不匹配(操作数类型是'QMap' 和“QMap::iterator”) mConfig->reqPLC->datatype.value(map[i]); ^
我知道这是由于 datatype.value(map[i]) 是一个迭代器造成的,但我无法找到避免这种情况的方法。我需要在这里转换我的迭代器吗?
【问题讨论】:
-
尝试
i.value()获取值,或i.key()获取密钥 -
您需要给出迭代器的值,而不是迭代器本身。在 stl 中,我会 i->first 让迭代器映射,以便访问密钥。