新兵易学,老兵易用----C++(C++11的学习整理---如何减少代码量,加强代码的可读性)
1.auto类型推导
auto推导最大的优势就是在拥有初始化表达式的复杂类型变量声明时简化代码。
auto第二个优势就是免去了程序员在一些类型声明时的麻烦,或者避免一些在类型声明时的错误。
auto第三个优势就是其“自适应”性能能够在一定程度上支持泛型的编程。
auto的四个使用细则:
1)函数:不能是形参
2)结构体:不能是静态类型
3)数组:不能声明数组
4)模板实例化:不能作为模板参数
2.decltype推导细则
1)如果e是一个没有带括号的表姐符表达式或者类成员访问表达式,那么decltype(e)就是e所命名的实体;
2)否则,就是设e的类型是T,如果e是一个将亡值,那么decltype(e)为T&&;
3)否则,就是设e的类型是T,如果e是一个左值,那么decltype(e)为T&;
4)否则,就是设e的类型是T,那么decltype(e)为T;
3.CV限制符的继承与冗余
decltype是可以冗余的,但是其推导的成员是不能继承const,volatile。
4.基于范围的for循环(做的比for_each更快更好)
5.追踪类型返回(真正释放了c++11的泛型编程的能力与更方便的使用模板)
新兵易学,老兵易用----C++(C++11的学习整理---如何减少代码量,加强代码的可读性)的更多相关文章
- 201621123050 《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallR ...
- 201621123057 《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallR ...
- 201621123031 《Java程序设计》第11周学习总结
作业11-多线程 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread ...
- 201621123043 《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallR ...
- 201621123001 《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 一个进程可以同时运行多个不同线程,不同的线程执行不同的任务 Java线程是通过java.lang包中定义的Thre ...
- 201621123010《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallR ...
- 201621123023《Java程序设计》第11周学习总结
一.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 二.书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallRun ...
- 201621123037 《Java程序设计》第11周学习总结
作业11-多线程 标签(空格分隔): Java 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程 ...
- 201621123012 《Java程序设计》第11周学习总结
作业11-多线程 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread ...
随机推荐
- sublim的正则匹配(待续)
ctrl+H 打开匹配模式 打开正则匹配模式 正则匹配的一些方法: 点代表的是任意字符.* 代表的是取 0 至 无限长度问号代表的是非贪婪模式.三个链接在一起是取尽量少的任意字符,一般不会这么单独写 ...
- Maven一些零散的知识点
Maven常用命令: 1. 创建Maven的普通java项目: mvn archetype:create -DgroupId=com.yida.framework -DartifactId=hello ...
- 【LOJ6513】「雅礼集训 2018 Day10」足球大战(数学题)
点此看题面 大致题意: 已知主队每秒进球概率为\(p\),客队每秒进球概率为\(q\),求主队进球数大于客队的概率. 推式子 考虑枚举主队进球数\(i\),则客队进球数必然小于\(i\),因此可再枚举 ...
- 2018.8.3 Java中容易犯错误的问题思考与总结
Java容易犯错误的问题思考 float型 float f = 3.4 是否正确 不正确,应该用强制类型转换.如下所示:float f = (float)3.4 或float f = 3.4f 在ja ...
- Linux查看CPU和内存使用情况[转]
在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会 ...
- 注解@Component,@Controller,@Service,@Repository简单了解
Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发.@Repository注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring B ...
- 开源项目托管github步骤
一.在github新建项目,复制到本地更改之后命令提交. 1.进入github主页新建项目:https://github.com/ccyinghua 2.复制项目地址 3.打开git Bash 命令行 ...
- Mybatis基础入门学习
Mybatis基础入门学习 mybatis架构分析 搭建测试mybatis架构 )下载并导入mybatis3.2.7.jar(架构),mysql-connector-java-5.1.7-bin.ja ...
- Linux新建用户后的必要设置
系统:ubnutu 18.04 x64 以下操作全在root下 准备工作: 新建用户 useradd -m tom 初始化密码 passwd tom 1. tab按键 不能自动单词不全 # ...
- Spring Cloud 入门 Consul-Client服务提供
前面介绍了 Rureka Client服务提供, 只需要改pom.xml部分内容 1.pom.xml <?xml version="1.0" encoding="U ...