两个原因,一是你不能把操作符传给函数,所以要用函数对象,而std::less简化了这个步骤(但是要比较的对象还是要实现operator<的);二是如果比较的是指针,operator<不能保证预期结果,但是std::less是标准化了一定会strick-weak ordering的。
关于第一点,可以参考这个网页:https://www.fluentcpp.com/2019/10/29/stdless-and-its-modern-evolution/
两个原因,一是你不能把操作符传给函数,所以要用函数对象,而std::less简化了这个步骤(但是要比较的对象还是要实现operator<的);二是如果比较的是指针,operator<不能保证预期结果,但是std::less是标准化了一定会strick-weak ordering的。
关于第一点,可以参考这个网页:https://www.fluentcpp.com/2019/10/29/stdless-and-its-modern-evolution/