无法访问复杂的qvector方法

时间:2015-12-01 20:00:31

标签: qt containers qvector

我的数据结构如下:

QVector<QHash<QPair<int, int>, QVector<double> > > * wow = new QVector< QHash<QPair<int, int>, QVector<double> > >(4);

当我写wow->at(0).keys();时 它工作正常,但当我写wow[0].keys();时,我收到一个错误说明如下:

  

&#39; class QVector,QVector&gt; &GT;&#39;没有   会员名为&#39; keys&#39;        哇[0] .keys();               ^

我将需要使用不仅需要只读访问权限的方法,而且我不明白为什么会发生这种情况。请你帮助我,我应该如何以非只读的方式访问Qhashe的方法?< / p>

1 个答案:

答案 0 :(得分:1)

当您编写wow[0].keys()时,wow是指针,它返回指向的第一个对象,就像一个数组。它基本上转换为指针的解引用,如下所示:wow->keys()。由于QVector没有keys方法,编译失败。

相反,如果您想从向量中获取元素0,则可以使用wow->at(0).keys()(*wow)[0].keys()。首先取消引用,然后使用下标运算符。