如何解决如何拥有 QMap 的 QVector
我想要一个 QMap 的 QVector。我使用了这个语法:
QVector<QMap<QString,QString>> x;
x[0].insert("name","jim");
x[0].insert("lname","helpert");
x[1].insert("name","dwight");
x[1].insert("lname","schrute");
但这不起作用:
如果有人指导我使用正确的格式,我将不胜感激。
解决方法
您收到“索引超出范围”是因为您正在访问一个空的 QVector。您需要先将 QMap 元素插入 QVector。然后你可以访问 x[0] -> 在第 0 个索引处的第一个 QMap, x[1] -> 在第一个索引处的第二个 QMap ....... 制作 QMap 对象。向其中插入元素。 制作 QVector 对象。将该 QMap 对象插入到此 QVector。 阅读文档并为其使用适当的函数https://doc.qt.io/archives/qt-4.8/
,出现“索引超出范围”错误是因为您试图访问不存在的向量元素。与其访问数组的特定索引/元素,不如先在 QVector 之外创建一个 QMap,然后再创建一个 x.push_back(map)
,这样地图就会被愉快地放置在 QVector 的后面。
类似的事情适用于带有 std::vector
的普通 C++,因为您需要将 push_back
或 emplace_back
数据传输到向量上
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。