初始化并访问 <QVector< QVector<int> > QT5

Initialize and access <QVector< QVector<int> > QT5

我已经声明了:

//myclass.h
QVector<int> aux;
QVector< QVector<int> > tests;

//myclass.cpp
aux = (QVector<int>(2));

它工作正常,但现在我想将每个 test QVector 维度初始化为 2 个长度:20 和 5。类似于:

tests = (QVector< QVector<int> >(20)(5));

但这不行。怎么初始化呢?

第二个问题是如何使用[]访问tests个位置 是不是和这个类似?:

tests[1][4]

谢谢。

您可以使用大小和要复制的对象对其进行初始化:

//Your .h
QVector<int>          aux;
QVector<QVector<int>> tests;

//your .cpp
aux   = QVector<int>(2);
tests = QVector<QVector<int>>(20, aux);

请注意,在测试初始化​​时使用辅助向量将不会引用(因此将来不会通过访问测试对其进行修改)或修改它。 这样测试内部将有 20 个大小为 2 的 QVectors。

关于第二个问题,它应该与 tests[x][y] 一起使用,但如果不行,你可以只使用 .at() 方法

tests.at(x).at(y);