這是我的代碼,以找到在地圖中的值:錯誤C2678:二進制「<」:沒有操作員發現它接受一個左邊的操作數...(或者沒有可接受的轉化率)
bool myclass::getFreqFromCache(plVariablesConjunction& varABC, vector<plFloat>& freq)
{
std::map<plVariablesConjunction, std::vector<plFloat>>::iterator freqItr;
freqItr = freqCache.find(varABC);
if (freqItr != freqCache.end())
{
freq = freqItr->second;
return true;
}
}
「PlVariablesConjunction」是一個ProBT庫數據類型。它包含運算符「==」,如果兩個變量發現相同,則返回true,否則返回false。
這裏是錯誤:
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\xfunctional(125): error C2678: binary '<' : no operator found which takes a left-hand operand of type 'const plVariablesConjunction' (or there is no acceptable conversion)
1> E:\ProBT22\probt-spl-2.2.0-expires-20121130-vc10-dynamic-release\include\plSymbol.h(71): could be 'bool operator <(const plSymbol &,const plSymbol &)' [found using argument-dependent lookup]
1> while trying to match the argument list '(const plVariablesConjunction, const plVariablesConjunction)'
1> C:\Program Files\Microsoft Visual Studio 10.0\VC\include\xfunctional(124) : while compiling class template member function 'bool std::less<_Ty>::operator()(const _Ty &,const _Ty &) const'
1> with
1> [
1> _Ty=plVariablesConjunction
1> ]
1> C:\Program Files\Microsoft Visual Studio 10.0\VC\include\map(71) : see reference to class template instantiation 'std::less<_Ty>' being compiled
1> with
1> [
1> _Ty=plVariablesConjunction
1> ]
1> C:\Program Files\Microsoft Visual Studio 10.0\VC\include\xtree(451) : see reference to class template instantiation 'std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,_Mfl>' being compiled
1> with
1> [
1> _Kty=plVariablesConjunction,
1> _Ty=std::vector<plProbValue>,
1> _Pr=std::less<plVariablesConjunction>,
1> _Alloc=std::allocator<std::pair<const plVariablesConjunction,std::vector<plProbValue>>>,
1> _Mfl=false
1> ]
1> C:\Program Files\Microsoft Visual Studio 10.0\VC\include\xtree(520) : see reference to class template instantiation 'std::_Tree_nod<_Traits>' being compiled
1> with
1> [
1> _Traits=std::_Tmap_traits<plVariablesConjunction,std::vector<plProbValue>,std::less<plVariablesConjunction>,std::allocator<std::pair<const plVariablesConjunction,std::vector<plProbValue>>>,false>
1> ]
1> C:\Program Files\Microsoft Visual Studio 10.0\VC\include\xtree(659) : see reference to class template instantiation 'std::_Tree_val<_Traits>' being compiled
1> with
1> [
1> _Traits=std::_Tmap_traits<plVariablesConjunction,std::vector<plProbValue>,std::less<plVariablesConjunction>,std::allocator<std::pair<const plVariablesConjunction,std::vector<plProbValue>>>,false>
1> ]
1> C:\Program Files\Microsoft Visual Studio 10.0\VC\include\map(81) : see reference to class template instantiation 'std::_Tree<_Traits>' being compiled
1> with
1> [
1> _Traits=std::_Tmap_traits<plVariablesConjunction,std::vector<plProbValue>,std::less<plVariablesConjunction>,std::allocator<std::pair<const plVariablesConjunction,std::vector<plProbValue>>>,false>
1> ]
1> e:\probt22\work\yasin\testmmhcfinalversion\testmmhc_mi_probt_sw\mmhc\slidingWindow.h(55) : see reference to class template instantiation 'std::map<_Kty,_Ty>' being compiled
1> with
1> [
1> _Kty=plVariablesConjunction,
1> _Ty=std::vector<plProbValue>
1> ]
哪裏是操作者<類型plVariablesConjunction? – ForEveR 2012-07-25 10:46:04
您發佈的代碼不會在地圖中插入任何內容,我敢打賭,這實際上與錯誤無關。 – 2012-07-25 10:47:02
對不起,發佈編輯 – DataMiner 2012-07-25 10:57:45