为什么我应该使用std :: less <t>()或其他运算符类而不是运算符<! - ?

时间:2017-06-11 19:22:51

标签: c++ stl functor

C ++ STL中的<functional>标头提供了几个运算符类。我被告知我应该使用这些操作员课程,而不是课程&#39;相当于operatorXX。为什么会这样?直接使用operator<的问题是什么?

例如,假设我们想要排序std::vector<string> v。使用sort()函数,我可以编写以下内容:

sort(v.begin(), v.end(), operator<);

但是我被告知最好写

sort(v.begin(), v.end(), less<string>())

使用<functional>中定义的这些运算符类有什么好处?

0 个答案:

没有答案