Funtion 的使用 \textbf{Funtion}\ \text{的使用} Funtion 的使用

关于 function属实是一种有趣的语法。

我们常常会碰到的问题,就是我们在一个函数内部想使用其局部变量来进行一些操作。

我们常用的写法是直接定义一个函数:

auto F = [&, i] () -> void{.....
};

但是如果说我们需要使用一些递归的调用,auto不能判断出其类型,我们就必须使用 function函数。

换言之 function本质上是一种类型,表示一个递归函数的指针。

function<A(B)> dfs;

其中 A表示返回值的类型,B表示要填的参数。

举一个列子,我们需要遍历以当前节点 x x x 为根的树。

for(int i = 1; i <= n; ++ i) {function<void(const int& p,int pre)> dfs;dfs = [&] (const int &p,int pre) {for(auto v : vc[p]) if(v != pre) dfs(to, p);}
}

除此之外其还可以成为很多类型的函数:

struct Node : {int operator + (const int &a, const int &b) const {return a + b;}
}
function<int(int, int)> F = Node;
auto g = [] (int a,int b) { return a - b; }
function<int(int, int)> F = g;

也就是静态,非静态函数, L a m b d a \tt Lambda Lambda 表达式等。

Function 语法浅谈相关推荐

  1. laytpl语法_浅谈laytpl 模板空值显示null的解决方法及简单的js表达式

    浅谈laytpl 模板空值显示null的解决方法及简单的js表达式 laytpl 模板语法 {{ d.field }} 输出一个普通字段,不转义html 官方的说明 但d.field 为空时会显示nu ...

  2. 一、C++语法基础(浅谈)

    AddictedToCpp:浅谈C++语法基础 一.计算机基础知识(简述内存) 1. 32位.64位处理器 2.CPU读取内存数据 3.关于指针所占内存大小 4.计算机存储器 5.编码规范 二.关于基 ...

  3. python语法中infile语句_浅谈pymysql查询语句中带有in时传递参数的问题

    直接给出例子说明: cs = conn.cursor() img_ids = [1,2,3] sql = "select img_url from img_url_table where i ...

  4. 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系

    转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...

  5. java的throw_浅谈Java的throw与throws

    浅谈Java异常 以前虽然知道一些异常的处理,也用过一些,但是对throw和throws区别还是有不太清楚.今天用实例测试一下 异常处理机制 异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被 ...

  6. python封装继承多态_浅谈JavaScript的面向对象和它的封装、继承、多态

    写在前面 既然是浅谈,就不会从原理上深度分析,只是帮助我们更好地理解... 面向对象与面向过程 面向对象和面向过程是两种不同的编程思想,刚开始接触编程的时候,我们大都是从面向过程起步的,毕竟像我一样, ...

  7. 浅谈 JavaScript 编程语言的编码规范--转载

    原文:http://www.ibm.com/developerworks/cn/web/1008_wangdd_jscodingrule/ 对于熟悉 C/C++ 或 Java 语言的工程师来说,Jav ...

  8. JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6

    Node.js 的基础教学 之 exports 和 module.exports:https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript.ES5.ES6 ...

  9. 浅谈PHP语音里的流程控制及实现方法

    脚本由语句构成,语句靠流程控制实现功能,这一节主要介绍了几个关键字的使用. elseif elseif和else if的行为完全一样,如果用冒号来定义if/elseif条件,那就不能用两个单词的els ...

最新文章

  1. Visual C++ 2012编译器更新(预览版)发布
  2. 【trie树】HDU1247Hat’s Words
  3. math.trunc_JavaScript中带有示例的Math.trunc()方法
  4. 华为智能IP网络,加速联接智能化转型
  5. 初识生成器与生成器表达式 Day12
  6. AI技术人才成长路线十大方向
  7. HttpWebRequest简单使用
  8. 要点初见:用Python进行微观交通模型仿真——基于SUMO的伯克利开源项目Flow Project初探与拓展
  9. 可以写在简历上的22个轻松上手的Java经典项目教程(含源码and笔记)
  10. 南京邮电大学java第三次实验报告
  11. C# 谷歌邮箱发送邮件
  12. Chrome远程调试手机端UC浏览器
  13. Flask PyMongo的基本使用
  14. Unity NavMesh寻路 A*(A star)分析及实例应用(一)
  15. 不要再被骗了------QQ盗号原理大揭秘
  16. 洛谷P3975 弦论
  17. iMX6ul开发指导
  18. 日本房产泡沫的崩塌,虽然很长,希望80后仔细阅读
  19. python七巧板绘图_记录一次canvas绘图(七巧板)
  20. Openwrt-USB网络共享

热门文章

  1. 05——svg的坐标系统和坐标系
  2. 使用虚拟机在CentOS上安装部署openGauss数据库指导(下)
  3. 五分钟免费注册美区Apple ID
  4. Mockito的简单使用(二)
  5. 微软q#_掌握Microsoft的P#
  6. 国内有哪些知名IDC机房?
  7. 微信小程序——快递查询
  8. Linux下的打包和压缩操作(bzip2和gzip)
  9. 智慧水务综合管理平台、智慧水务信息化、供水信息化管理—山西河曲县应用案例
  10. Openstack的ipv6网络