首页 > 解决方案 > 迭代时无法读取配置文件

问题描述

尝试从配置文件中读取时,我无法访问迭代器。我的代码是:

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]) 是一个迭代器造成的,但我无法找到避免这种情况的方法。我需要在这里投射我的迭代器还是什么?

标签: c++qtqmap

解决方案


可以通过迭代器类访问使用迭代器key, valueQMap

在你的情况下:

void requestPLC::write(QMap <QString, QVariant> map)
{

    QMap<QString, QVariant>::iterator i;

    for (i = map.begin(); i != map.end(); ++i)
    {
        auto map_value = i.value();
        mConfig->reqPLC->datatype.value(map_value);
        // do something here
    }
}

推荐阅读