无法访问复杂的 qvector 的方法
Posted
技术标签:
【中文标题】无法访问复杂的 qvector 的方法【英文标题】:Cant access complex qvector's methods 【发布时间】:2015-12-01 20:00:31 【问题描述】:我的数据结构如下所示:
QVector<QHash<QPair<int, int>, QVector<double> > > * wow = new QVector< QHash<QPair<int, int>, QVector<double> > >(4);
当我写wow->at(0).keys();
它工作正常,但是当我写 wow[0].keys();
时,我收到一条错误消息:
'class QVector, QVector >>' 没有 名为“钥匙”的成员 哇[0].keys(); ^
我将需要使用不仅需要只读访问权限的方法,而且我不明白为什么会发生这种情况。您能帮帮我吗?我应该如何以非只读方式访问 Qhashe 的方法?
【问题讨论】:
【参考方案1】:当你写wow[0].keys()
时,wow
是一个指针,它返回第一个指向的对象,就像一个数组。它基本上转换为指针的取消引用,如下所示:wow->keys()
。由于QVector
没有keys
方法,因此编译失败。
如果您想从向量中获取元素0
,则可以使用wow->at(0).keys()
或(*wow)[0].keys()
。首先取消引用,然后使用下标运算符。
【讨论】:
我现在明白了。非常感谢!以上是关于无法访问复杂的 qvector 的方法的主要内容,如果未能解决你的问题,请参考以下文章
访问存储在 QVector 中的 QObject 的各个方面