该类的目的是实现一种按照给定方式对集合中元素进行排序的函数。这被称为谓词。

它被实现为一个函数对象,即允许在对象上使用函数运算符(这就是 std::set 在幕后所做的)。这是 STL 和类似代码调用自定义对象的常见方式。(函数指针比函数对象(也称为函数器)更受限制)

因此,它的使用方式如下:

Unitless functor;

functor(123, 124); // returns true or false

std::set是一个排序二叉树,因此在每次插入时会多次调用Unitless的()运算符来确定每个长整型值应该放在哪里。

尝试编译并在其中加入一些printf/std::cout,看看会发生什么。

还要注意,像这样的回调(即当您无法看到对您的代码的调用时)在学习曲线的开始阶段会让人感到恐惧和困惑。

然后你习惯了它们并且到处都使用它们,因为它们很方便。

然后你的代码变得可怕和混乱,你像瘟疫一样避免它们。

然后你成为了一个“胶带程序员”,只在适当的地方使用它们,但从不在其他地方使用。

;)

Copyright © 2088 波隆网游活动中心 - 热门游戏限时福利聚合站 All Rights Reserved.
友情链接