初始化并访问<qvector <qvector <int =“”>&gt; QT5

时间:2015-11-08 12:14:40

标签: c++ arrays qt5 qvector

我已经宣布了这个:

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

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

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

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

但这不是好的。怎么能初始化它?

第二个问题是如何使用[]访问测试位置是否与此类似?:

tests[1][4]

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用大小和对象对其进行初始化,以便在每个对象上进行复制:

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

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

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

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

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