首页 新闻 搜索 专区 学院

哪位高手帮我解释下,下面这行代码的含义(越具体越好)

0
悬赏园豆:50 [待解决问题]

有个迷惑一直困扰着我,就是在定义一个set的变量;

代码如下:

set<int>s2(less<int>(),s1_alloc);

其中s1_alloc是一个内存分配器

c++
问题补充:

深入一点理解,在该中定义方式中为什么需要拷贝()运算符?

SzMing的主页 SzMing | 初学一级 | 园豆:149
提问于:2012-11-19 17:51
< >
分享
所有回答(1)
0

关于 set,请看这里:http://www.cplusplus.com/reference/stl/set/set/

关于 less,请看这里:http://www.cplusplus.com/reference/std/functional/less/

你不理解的可能是less<int>(),这种用法叫function object,

你可以看到less里重载了 operator() 。

set的构造函数的第1个参数是需要一个Compare函数,这里传入了一个less<int>的对象实例,因为它重载了operator(),所以在这里当成Compare用了。

__熊_ | 园豆:238 (菜鸟二级) | 2012-11-19 19:25

function object有一些优势,最直观的就是使用类的一些特性,如模版、继承、成员变量等。比如,你可以在类里定义成员变量,实现不同目的的函数功能。

支持(0) 反对(0) __熊_ | 园豆:238 (菜鸟二级) | 2012-11-22 15:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册