1

我已经声明了这一点:

//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]

谢谢。

4

1 回答 1

2

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

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

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

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

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

tests.at(x).at(y);
于 2015-11-08T12:19:42.750 回答