/ 仿函数 , 这三个是同一个概念 , 相当于 在循环体中调用该 函数对象 / 仿函数 中的 " 重载 函数调用操作符 () 函数 " ;
在下面的代码中 , 自定义了 PrintT 仿函数类 , 该类对象可以...直接当做函数一样调用 ;
//函数对象 类重载了()
template
class PrintT{
public:
void operator()(T& t){
cout...// 在函数对象中打印元素内容
for_each(vec.begin(), vec.end(), PrintT());
// 控制台暂停 , 按任意键继续向后执行
system(.../ 仿函数
在上面的代码中 , 使用了 Lambda 表达式 , 如下所示 :
// 向 foreach 循环中传入 Lambda 表达式
// 在函数对象中打印元素内容
for_each(vec.begin...捕获所有外部变量 ;
[this] : 捕获当前类的 this 指针 ;
上述 foreach 循环中 , 没有捕获外部的变量 , 传入了 int 类型的参数 , 在函数体内打印了 int 类型参数