【发布时间】:2015-07-04 06:08:47
【问题描述】:
我有一个使用带有迭代器的 STL 集的 C++ 程序。集合和迭代器定义为:
set<TokenTableEntry*, Comparator> _XCLITokenTable;
set<TokenTableEntry*>::const_iterator it;
我有一个名为 findToken 的例程(如下所示),它有一个语句:
it = _XCLITokenTable.find(_TokenTableEntry);
产生错误信息的原因:
"隐式 std::_Tree std::less,std::allocator,0>>::const_iterator::operator=(const std::_Tree,std::allocator,0>>::const_iterator &)" 不是可行的候选者。
我不知道这条消息告诉我什么或如何更正它。任何人都可以提出建议吗?
感谢您的帮助。
约翰
int XCLITokenTable::findToken (string name, TokenTableEntry *_TokenTableEntry)
{
int type;
type = -1;
string lookupName(name);
std::transform(name.begin(), name.end(), name.begin(), ::tolower);
_TokenTableEntry->name = lookupName;
**it = _XCLITokenTable.find(_TokenTableEntry);**
if (it != _XCLITokenTable.end())
{
if ((*it)->name == name)
{
type = (*it)->type;
tokenCount++;
*_TokenTableEntry = *(*it);
return type;
}
}
return type;
}
【问题讨论】: