2015-11-08 388 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