c++ - 迭代时无法读取配置文件
问题描述
尝试从配置文件中读取时,我无法访问迭代器。我的代码是:
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]) 是一个迭代器造成的,但我无法找到避免这种情况的方法。我需要在这里投射我的迭代器还是什么?
解决方案
可以通过迭代器类访问使用迭代器key, value
的QMap
在你的情况下:
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
}
}
推荐阅读
- python - 如何使用列表推导将列表附加到现有列表
- java - 如何在搜索时过滤选定的viewpager片段中的recyclerview?
- angular - 如果满足 ngIf 条件,如何更改 Typescript 布尔变量?
- python - 如何使用给定的例外情况进行冷却
- d3.js - D3 js:我想知道如何根据y轴值做一条水平线
- flutter - Flutter 用户生成的深层链接
- android - Android Q(10)下如何使用MediaStore保存图片?
- swift - Swift @Published 导致 didSet 递归
- python - 基于str数据将数据框行顺序与Python中的另一个数据框匹配
- java - 错误:java:无效的源发布 Intellij IDEA