初始化并访问 <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);
我已经声明了:
//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);