读书人

c++ sort+模板解决办法

发布时间: 2012-04-08 14:38:30 作者: rapoo

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>);

读书人网 >C++

热点推荐