??
bind是一组用于函数绑定的模板。在对某个函数进行绑定时,可以指定部分参数或全部参数,也可以不指定任何参数,还可以调整各个参数间的顺序。对于未指定的参数,可以使用占位符_1、_2、_3来表示。-1表示绑定后的函数的第1个参数,_2表示绑定后的函数的第2个参数,其他依次类推。
bind可以绑定到普通函数、函数对象、类的成员函数和类的成员变量。下面分别进行介绍。
1、普通函...
分类:
编程语言 时间:
2015-05-05 12:37:53
阅读次数:
211
??
function是一组函数对象包装类的模板,实现了一个泛型的回调机制。function与函数指针比较相似,优点在于它允许用户在目标的实现上拥有更大的弹性,即目标既可以是普通函数,也可以是函数对象和类的成员函数,而且可以给函数添加状态。
声明一个function时,需要给出所包装的函数对象的返回值类型和各个参数的类型。比如,声明一个function,它返回一个bool类型并接受一个...
分类:
编程语言 时间:
2015-05-05 12:37:18
阅读次数:
169
??
C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda的语法形式如下:
[函数对象参数] (操作符重载函数参数) mutable或exception声明 ->返回值类型 {函数体}
可以看到,Lambda主要分为五个部分:[函数对象参数]、(操作符重载函数参数)、mutable或exception声明、->返...
分类:
编程语言 时间:
2015-05-05 12:34:39
阅读次数:
220
在定义hash_map容器的时候,不仅需要指定键和值的类型,还需要指定hash函数和相等函数
(一)hash_map 的hash函数
hash到底是什么样子?看看源码:
struct hashint> {
size_t operator()(int __x) const { return __x; }
};
原来是个函数对象。在SGI S...
分类:
编程语言 时间:
2015-05-05 08:55:34
阅读次数:
313
??
STL中的所有算法(70个)
STL算法部分主要由头文件,,组成。要使用
STL中的算法函数必须包含头文件,对于数值算法须包含,中则定义了一些模板类,用来声明函数对象。
STL中算法大致分为四类:
1、非可变序列算法:指不直接修改其所操作的容器内容的算法。
2、可变序列算法:指可以修改它们所操作的容器内容...
分类:
编程语言 时间:
2015-05-04 20:18:51
阅读次数:
139
最近看到winter(寒冬)老师的一篇博文,说的是js这类基于原型的继承与普通的基于类继承方式的差异。文章最后抛出几个有意思的小练习尝试的解决了下。
一般来说,创建一个对象有如下三个步骤:
1. 构建一个新对象
2. 把新对象的__proto__指向函数对象的共有对象属性:prototype
3. 以新对象为this执行构造函数
Function.prototyp...
分类:
编程语言 时间:
2015-05-02 23:28:44
阅读次数:
217
1. 匿名函数匿名函数是一些拥有函数体,但没有函数名的函数。Lambda是一种与匿名函数相关的编程技术,但需要说明的是Lambda表达式得到的不是一个匿名函数,而是一个函数对象。MSDN:Lambda隐式定义函数对象类并构造该类类型的函数对象。2. Lambda语法
分类:
编程语言 时间:
2015-04-30 17:44:57
阅读次数:
105
本函数是返回一个静态函数对象,主要用来作为静态函数的修饰符。静态函数的特性是可以直接通过类命名空间访问,也就是说没有定义类实例也可以使用此函数;也可以通过类实例来访问。这跟JAVA或C++里的静态函数是一样的作用。与classmethod是有区别,这点要注意。例子:#staticmethod()
class Foo:
@staticmethod
def Add(a, b):
...
分类:
编程语言 时间:
2015-04-26 16:49:47
阅读次数:
146
词法作用域定义实现的规则:1 函数作用域实在定义的时候决定的,而不是在执行时候决定2 为了实现这种词法作用域,函数内部不仅包含函数代码逻辑,还必须引用当前的作用域链。3 函数对象可以通过作用域链相互关联起来,函数内部的变量都可以保存在函数作用域内。变量作用域:变量的作用域是程序源代码中定义这个变量的...
分类:
Web程序 时间:
2015-04-22 22:11:42
阅读次数:
133
(1) 函数声明函数实际上是对象。每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定。a. 使用函数声明语法定义;function sum(num1,num2){ return num1+nu...
分类:
编程语言 时间:
2015-04-20 12:45:48
阅读次数:
194