家里有语言律师吗?
下面的代码应该编译吗?
include <set>
bool fn( const std::set<int>& rSet )
{
if ( rSet.find( 42 ) != rSet.end() ) return true;
return false;
}
在其中一个平台(Sun Workshop)上,这不会编译。它报告 find 函数返回了一个迭代器,而 end 函数返回了一个 const_iterator 并且它在这些类型之间没有有效的比较运算符。
以下确实编译:
include <set>
bool fn( std::set<int>& rSet )
{
if ( rSet.find( 42 ) != rSet.end() ) return true;
return false;
}