如何拥有 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");

但这不起作用:

browsers default to

如果有人指导我使用正确的格式,我将不胜感激。

解决方法

您收到“索引超出范围”是因为您正在访问一个空的 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_backemplace_back 数据传输到向量上

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...