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>
中定义的这些运算符类有什么好处?