我不知道出了什么问题,但是我无法访问迭代器所引用的对象的方法。这就是我所拥有的:
multimap<long, Note>::iterator notesIT;
notesIT = trackIT->getNoteList().lower_bound(this->curMsr * 1000000);
while(notesIT->first / 1000000 == 1){
cout << notesIT->first.getStartTime() << endl; // error on this line
notesIT++;
}
我收到此错误:
error: request for member 'getStartTime' in 'notesIT. std::_Rb_tree_iterator<_Tp>::operator-> [with _Tp = std::pair<const long int, Note>]()->std::pair<const long int, Note>::first', which is of non-class type 'const long int'
最佳答案
编译器告诉您
notesIT->first.getStartTime()
无效,因为您尝试在
getStartTime()
上调用int
。显然,您打算在Node
上调用它,因此选择迭代器指向的对的第二部分(产生迭代器的Node
部分):cout << notesIT->second.getStartTime() << endl;