我想要一个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");
但这是行不通的:
如果有人能帮我找到正确的格式,我将不胜感激。
发布于 2021-06-08 17:08:35
出现"Index Out Out Range“错误是因为您试图访问一个不存在的向量元素。与其访问数组的特定索引/元素,不如先在QVector外部创建一个QMap,然后再创建x.push_back(map)
,这样就可以将映射放在QVector的后面。
类似的情况也适用于使用std::vector
的普通C++,因为您需要将push_back
或emplace_back
数据添加到矢量中
发布于 2021-06-08 17:05:16
因为您正在访问一个空的QVector,所以您得到了“索引超出范围”。您需要首先在QVector中插入QMap元素。然后你可以在第0个索引访问第一个QMap的x ->,在第一个索引访问第二个QMap的x1 -> .创建QMap对象。在其中插入元素。创建QVector对象。将QMap对象插入到此QVector中。阅读文档并对其使用适当的函数https://doc.qt.io/archives/qt-4.8/
https://stackoverflow.com/questions/67891271
复制相似问题