无法访问复杂的向量方法

Cant access complex qvector's methods

我的数据结构如下所示:

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 > >' has no member named 'keys' wow[0].keys(); ^

我将需要使用不仅需要只读访问权限的方法,而且我不明白为什么会这样 happens.Can 请您帮助我,我应该如何以非只读方式访问 Qhashe 的方法?

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

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