find()迭代器解引用得到" cannot convert ' this ' pointer "错误

QSet::find() iterator dereferencing gets “cannot convert ‘this’ pointer” error?

本文关键字:this pointer 错误 迭代器 convert 引用 find cannot      更新时间:2023-10-16

尝试访问迭代器引用时出现错误:

QSet<UniqueWord>::iterator iter = uniqueWords.find(word);
iter->addOccurrence(position); // this gets an error

我得到的错误:

错误:C2662: ' UniqueWord::addOccurrence ':无法转换' this '从' const UniqueWord '到' UniqueWord & '的指针转换失败限定符

我错过了什么?

您错过了迭代器的operator->返回const UniqueWord *,因此您试图在UniqueWord上调用addOccurrence,即const

查看这里的文档:

http://doc.qt.digia.com/qt/qset-iterator.html