0

我很好奇为什么 std::lower_bound() 要求通过比较函数的值而不是引用传递?

按值传递意味着需要一个副本,从而减慢速度;特别是,如果有人传入一个“大”比较函数对象。

4

1 回答 1

4

许多(如果不是大多数)比较对象是无状态的并且几乎没有大小(尽管它们的大小不能为零)。传递引用实际上可能比按值传递无状态谓词更昂贵(特别是如果编译器能够完全省略副本)。

于 2013-06-20T02:40:15.200 回答