参考博客:https://www.cnblogs.com/decade-dnbc66/p/5347088.html 1、重载 ( ) 2、仿函数 仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。 ...
分类:
其他好文 时间:
2018-09-03 13:38:53
阅读次数:
163
语义: 类模板std::function是可调用对象的包装器,可以包装除了类成员之外的所有可调用对象。包括,普通函数,函数指针,lambda,仿函数。通过指定的模板参数,它可以用统一的方式保存,并延迟执行它们。所谓的延迟执行,就是回调了。 它使得C++对C的兼容性更强了。 常规多态案例: 多态转st ...
分类:
其他好文 时间:
2018-07-20 16:50:05
阅读次数:
227
声明:源码同《STL源码剖析》(侯捷) STL: C++标准的模板库,通用性高。 常见的数据结构封装。 提供常用的通用算法。 STL六大组件: 容器 算法 迭代器 仿函数(函数对象) 适配器 配置器 空间配置器的作用: 1.提高代码复用率,功能模块化。 2.减少内存碎片问题。 比如我们list是链式 ...
分类:
编程语言 时间:
2018-06-18 18:23:39
阅读次数:
259
函数模板men_fn()相当于STL中内置的仿函数,把成员函数转为函数对象,使用对象指针进行绑定。 用法类似于C++11中的bind。 返回的对象的类型具有以下属性: 1)它的函数调用将T类型的对象(或引用或指向它的指针)作为第一个参数,并将其作为附加参数用于pm(如果有)所采用的参数。 这种以fn ...
分类:
编程语言 时间:
2018-06-05 11:31:01
阅读次数:
3928
源码:《STL源码剖析P345》 源码:《STL源码剖析P345》 ...
分类:
编程语言 时间:
2018-06-03 19:34:22
阅读次数:
246
如果有一天我当了面试官,我会问这些问题 1. HTTP的 GET 和 POST 有什么区别? 2. 为什么TCP握手需要三次,挥手需要四次? 3. 类的普通成员函数和虚函数哪一个比较快? 4. 为什么仿函数比函数指针更快 6. HTTPS和HTTP的区别 7. 说一说迪杰斯特拉算法 ...
分类:
其他好文 时间:
2018-05-13 16:08:06
阅读次数:
155
仿函数(functor),就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。 In computer programming, a function object[a] is a construct allowing an ...
分类:
其他好文 时间:
2018-03-27 12:36:35
阅读次数:
121
先考虑一个简单的例子:假设有一个vector<string>,你的任务是统计长度小于5的string的个数,如果使用count_if函数的话,你的代码可能长成这样: 其中count_if函数的第三个参数是一个函数指针,返回一个bool类型的值。一般的,如果需要将特定的阈值长度也传入的话,我们可能将函 ...
分类:
编程语言 时间:
2018-03-10 00:15:56
阅读次数:
138
函数绑定:1.函数对象 (1.1)能够被当做函数调用的不一定就是函数,它们也可能是: A.存放函数入口地址的函数指针 B.实现了小括号运算符的类对象,亦称仿函数 C.可被转换为函数指针的类对象 (1.2)可调用对象,像函数指针,仿函数以及可被转换为函数指针的类对象都被称为可调用对象,而他们的类型就被 ...
分类:
编程语言 时间:
2018-02-24 21:50:22
阅读次数:
230
题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 思路:这道题用到两个堆,使用优先级队列进行实现,原始的优先级队列是最大堆,加上greater仿函数之后 ...
分类:
其他好文 时间:
2018-01-27 00:35:13
阅读次数:
197