QT迭代器 QVector<int>::iterator it;
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT迭代器 QVector<int>::iterator it;相关的知识,希望对你有一定的参考价值。
QVector<int>::iterator it=m_VSAllSelNo.begin();
while(it!=m_VSAllSelNo.end())
m_thSubmit->m_VSAllSelNo.push_back(it);
m_thSubmit->start();
menu.cpp:236: 错误:从类型 ‘int**’ 到类型 ‘int’ 的转换无效
menu.cpp:236: 错误: 初始化实参 1,属于 ‘void QVector<T>::push_back(const T&) [with T = int]
求问如何改
m_thSubmit->m_VSAllSelNo.push_back(*it); 参考技术B 应该是push_back(it.data())吧
初始化并访问 <QVector< QVector<int> > QT5
【中文标题】初始化并访问 <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 中设置大小?
我正在编辑答案以上是关于QT迭代器 QVector<int>::iterator it;的主要内容,如果未能解决你的问题,请参考以下文章