c++ - 使用 for 遍历 QMap

标签 c++ qt c++11 qmap

我有一个 QMap 对象,我正在尝试将其内容写入文件。

QMap<QString, QString> extensions;
//.. 

for(auto e : extensions)
{
  fout << e.first << "," << e.second << '\n';
}  

为什么我会得到:错误:'class QString' 没有名为 'first' 和 'second' 的成员

e 不是 QPair 类型吗?

最佳答案

如果您想要带有 firstsecond 的 STL 样式,请执行以下操作:

for(auto e : extensions.toStdMap())
{
  fout << e.first << "," << e.second << '\n';
}

如果您想使用 Qt 提供的功能,请执行以下操作:

for(auto e : extensions.keys())
{
  fout << e << "," << extensions.value(e) << '\n';
}

关于c++ - 使用 for 遍历 QMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8517853/

相关文章:

c++ - opengl 从一个 vao 中绘制多个对象

python - 如何更改标题数据

c++ - 将项目 move 到列表而不复制

c++ - 为什么 std::condition_variable 使调度不公平?

c++ - tolower() 返回一个数字而不是小写形式?

c++ - 在 Qt QwebKit 中,如何在启动时删除所有 cookie?

c++ - 求 'n'二进制串中最长公共(public)子串的长度

c++ - QT - 是否有将几张图片组合成一张的类(class)?

c++ - 可以在 C++ QObject::connect() 中连接一个 QML 对象现有信号吗?

c++ - 将具有绑定(bind)成员函数的 std::bind 对象传递给函数