C++11 Function 使用场景
【1】场景分析
在一个函数内部,可能会多次用到某一段代码,一般情况是把这段用到次数较多的代码封装成一个函数。
但是,如果这段代码仅仅只在这个函数中有使用,这时封装成函数显得既麻烦又冗赘。
那么,有没有办法生成一个“临时的函数”,且“临时的函数”生命周期仅在这个函数当中?C++11中可以使用function配合lambda表达式来实现。
【2】代码示例
简单示例如下:
#include <iostream>
#include <functional> class A
{
public:
void funcOld(int x, int y)
{
// -----code section
auto s1 = x + y;
// -----code section
auto s2 = x + y;
// -----code section
auto s3 = x + y; std::cout << "sum :: " << s1 + s2 + s3 << std::endl;
} void func(int x, int y)
{
auto func1 = [this](int x, int y)
{
return x + y;
}; auto s1 = func1(x, y); auto s2 = func1(x, y); auto s3 = func1(x, y); std::cout << "sum :: " << s1 + s2 + s3 << std::endl;
}
}; void main(int argc, char *argv[])
{
for (auto c : { "hello world !!!" }) // c++17 for
{
std::cout << c;
} std::cout << std::endl;
A a;
a.func(, ); system("pause");
} // run out:
/*
hello world !!!
sum :: 15
请按任意键继续. . .
*/
Good Good Study, Day Day Up.
顺序 选择 循环 总结
C++11 Function 使用场景的更多相关文章
- CI Weekly #11 | 微服务场景下的自动化测试与持续部署
又一周过去了,最近我们的工程师正在搞一个"大事情" --「[flow.ci](http://flow.ci/?utm_source=bokeyuan&utm_medium= ...
- Using C++11 function & bind
The example of callback in C++11 is shown below. #include <functional> void MyFunc1(int val1, ...
- C++11 function
#include <iostream> #include <functional> #include <vector> using namespace std; / ...
- C++11 function使用
function是一组函数对象包装类的模板,实现了一个泛型的回调机制. 引入头文件 #include <functional>using namespace std;using names ...
- c++11 function bind 测试。
实验小结 1)function 是一个模板类.有函数指针成员.可以看作安全型函数指针. template<typename _Res, typename... _ArgTypes> cla ...
- c++11:function的用法
function是函数.函数对象.函数指针.和成员函数的包装器,可以容纳任何类型的函数对象,函数指针,引用函数,成员函数的指针 普通函数 #include <functional> voi ...
- C++ 11: function & bind 使用示例
#include <functional> #include <iostream> struct Foo { Foo(int num) : num_(num) {} void ...
- C++11 function用法 可调用对象模板类
std::function<datatype()> ()内写参数类型 datatype 代表function的返回值 灵活的用法.. 代码如下 #include <stdio.h&g ...
- C/C++ 随笔目录
[1]基础部分 (1)宏定义 <assert> <offset宏> <#pragma once> <宏定义学习> <预处理语句> <# ...
随机推荐
- java 网络编程(四)TCP通讯
客户端: package cn.sasa.TcpDemo; import java.io.IOException; import java.io.InputStream; import java.io ...
- js实现字符串格式的日期加一天
参考使用的连接:https://blog.csdn.net/hao_0420/article/details/80255593 使用:console.log(addDate("2018-6- ...
- js判断开始时间不能小于结束时间
function validTime(startTime,endTime){ var arr1 = startTime.split("-"); var arr2 = e ...
- JavaScript深度克隆
深度克隆函数: function deepClone(obj){ var str = ""; var newobj = obj.constructor === Array ? [] ...
- 什么是HDFS
HDFS是什么:HDFS即Hadoop分布式文件系统(Hadoop Distributed Filesystem),以流式数据访问模式来存储超大文件,运行于商用硬件集群上,是管理网络中跨多台计算机存储 ...
- Redis入门到高可用(十)—— Spring与Redis的整合
1.pom文件 <!--redis--> <dependency> <groupId>org.springframework.data</groupId> ...
- MYSQL PROCEDURE 测试用例
/** * 查询俱协信息 */ DROP PROCEDURE IF EXISTS `get_club_list`; DELIMITER $$ CREATE PROCEDURE `get_club_li ...
- NgDL:第三周:浅层NN
1.激活函数 1.tanh函数比sigmoid效果更好,它的区间是[-1,1],所以均值为0,有类似于让数据中心化的效果. //此时Ng说,tanh函数几乎在所有场合都更优越. 2.但是如果yhat是 ...
- zabbix 监控 redis
redis 可以直接使用zabbix官方的模板 模板地址: https://github.com/blacked/zbx_redis_template redis 主机通过脚本把数据推送到zabbi ...
- git的reset的理解
git的reset的理解 1.在理解reset命令之前,先对git中涉及到的与该reset命令相关概念进行说明和解释HEAD这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交Indexind ...