今天用c++标准模板库(STL)中的sort算法给一个vector
error: no matching function for call to'sort(__gnu_cxx::__normal_iterator
note: candidates are: void std::sort(_RandomAccessIterator,_RandomAccessIterator, _Compare) ......
程序是这样的:
fourdct.h
boolPhasePairLess(pair
fourdct.cpp
vector
....
sort(phasePairVector.begin(),phasePairVector.end(),PhasePairLess);
boolFourDCT::PhasePairLess(pair
{
return p1.second
错误的原因是比较函数PhasePairLess应当是static的。将头文件中的函数声明改为:
static boolPhasePairLess(pair
编译通过。注意,cpp文件中不用static。