Function 语法浅谈
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 语法浅谈相关推荐
- laytpl语法_浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式 laytpl 模板语法 {{ d.field }} 输出一个普通字段,不转义html 官方的说明 但d.field 为空时会显示nu ...
- 一、C++语法基础(浅谈)
AddictedToCpp:浅谈C++语法基础 一.计算机基础知识(简述内存) 1. 32位.64位处理器 2.CPU读取内存数据 3.关于指针所占内存大小 4.计算机存储器 5.编码规范 二.关于基 ...
- python语法中infile语句_浅谈pymysql查询语句中带有in时传递参数的问题
直接给出例子说明: cs = conn.cursor() img_ids = [1,2,3] sql = "select img_url from img_url_table where i ...
- 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系
转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...
- java的throw_浅谈Java的throw与throws
浅谈Java异常 以前虽然知道一些异常的处理,也用过一些,但是对throw和throws区别还是有不太清楚.今天用实例测试一下 异常处理机制 异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被 ...
- python封装继承多态_浅谈JavaScript的面向对象和它的封装、继承、多态
写在前面 既然是浅谈,就不会从原理上深度分析,只是帮助我们更好地理解... 面向对象与面向过程 面向对象和面向过程是两种不同的编程思想,刚开始接触编程的时候,我们大都是从面向过程起步的,毕竟像我一样, ...
- 浅谈 JavaScript 编程语言的编码规范--转载
原文:http://www.ibm.com/developerworks/cn/web/1008_wangdd_jscodingrule/ 对于熟悉 C/C++ 或 Java 语言的工程师来说,Jav ...
- JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6
Node.js 的基础教学 之 exports 和 module.exports:https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript.ES5.ES6 ...
- 浅谈PHP语音里的流程控制及实现方法
脚本由语句构成,语句靠流程控制实现功能,这一节主要介绍了几个关键字的使用. elseif elseif和else if的行为完全一样,如果用冒号来定义if/elseif条件,那就不能用两个单词的els ...
最新文章
- Visual C++ 2012编译器更新(预览版)发布
- 【trie树】HDU1247Hat’s Words
- math.trunc_JavaScript中带有示例的Math.trunc()方法
- 华为智能IP网络,加速联接智能化转型
- 初识生成器与生成器表达式 Day12
- AI技术人才成长路线十大方向
- HttpWebRequest简单使用
- 要点初见:用Python进行微观交通模型仿真——基于SUMO的伯克利开源项目Flow Project初探与拓展
- 可以写在简历上的22个轻松上手的Java经典项目教程(含源码and笔记)
- 南京邮电大学java第三次实验报告
- C# 谷歌邮箱发送邮件
- Chrome远程调试手机端UC浏览器
- Flask PyMongo的基本使用
- Unity NavMesh寻路 A*(A star)分析及实例应用(一)
- 不要再被骗了------QQ盗号原理大揭秘
- 洛谷P3975 弦论
- iMX6ul开发指导
- 日本房产泡沫的崩塌,虽然很长,希望80后仔细阅读
- python七巧板绘图_记录一次canvas绘图(七巧板)
- Openwrt-USB网络共享