c++ sort+模板
typedef struct
{
int id;
int group;
int level;
}RuleT;
template <class T>
bool greater_marker(const T &arg1, const T &arg2)
{
if (arg1.group > arg2.group)
return true;
else if (arg1.group < arg2.group)
return false;
else if (arg1.level > arg2.level)
return true;
else
return false;
}
int main(int argc, char**argv) {
// Prints welcome message...
vector<RuleT> sig;
//........省略对变量sig赋值
sort(sig.begin(), sig.end(), greater_marker);
return 0;
}
错误提示:
welcome.cc:66: error: no matching function for call to `sort(__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, <unknown type>)'
这个地方想用模板怎么办??
[解决办法]
sort(sig.begin(), sig.end(), greater_marker<RuleT>);