2015-11-08 385 views
0

我已宣布这一点:初始化和访问<QVector <QVector <int>> QT5

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

可以具有尺寸和对象初始化对每一个复制:

//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); 
+0

好,AUX和测试是独立变量。我不想依靠第一个。我已经声明'QVector >测试;'在我的.h文件中,我不能在那里进行初始化。我需要在我的.cpp文件中。 – walolinux

+0

@walolinux只是使用另一个载体来初始化测试一个或使用一个副本的一个 – Netwave

+0

好吧,但我怎么能声明它在我的.h和在我的.cpp设置大小? – walolinux