0

我有一个看起来像这样的数据结构:

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 >>' 没有名为 'keys' 的成员 wow[0].keys(); ^

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

4

1 回答 1

1

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

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

于 2015-12-01T20:04:56.913 回答