初始化并访问 <QVector< QVector<int> > QT5
Posted
技术标签:
【中文标题】初始化并访问 <QVector< QVector<int> > QT5【英文标题】:Initialize and access <QVector< QVector<int> > QT5 【发布时间】:2015-11-08 12:14:39 【问题描述】:我已经声明了:
//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]
谢谢。
【问题讨论】:
【参考方案1】:你可以用一个大小和一个要复制的对象来初始化它:
//Your .h
QVector<int> aux;
QVector<QVector<int>> tests;
//your .cpp
aux = QVector<int>(2);
tests = QVector<QVector<int>>(20, aux);
请注意,在测试初始化中使用 aux 向量将不会引用(因此将来不会通过访问测试对其进行修改)或修改它。 这样测试内部将有 20 个大小为 2 的 QVector。
关于第二个问题,它应该与 tests[x][y] 一起使用,但如果不是,你可以使用 .at() 方法
tests.at(x).at(y);
【讨论】:
嗯,辅助和测试是自变量。我不想依赖第二个。我已经在我的 .h 文件中声明了QVector< QVector<int> > tests;
,但我不能把初始化放在那里。我的 .cpp 文件中需要它。
@walolinux 只需使用另一个向量来初始化测试向量或使用辅助向量的副本
好的,但是如何在我的 .h 中声明它并在我的 .cpp 中设置大小?
我正在编辑答案以上是关于初始化并访问 <QVector< QVector<int> > QT5的主要内容,如果未能解决你的问题,请参考以下文章
访问存储在 QVector 中的 QObject 的各个方面
Qt - 如何将 QVector<QString> 保存并加载到多个标签中?