新兵易学,老兵易用----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的泛型编程的能力与更方便的使用模板)

时间: 2024-11-02 16:36:30

新兵易学,老兵易用----C++(C++11的学习整理---如何减少代码量,加强代码的可读性)的相关文章

201621123030《Java程序设计》第11周学习总结

1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallRunnable类有什么用?为什么代码中需要调用Thread.sleep进行休眠? BallRunnable实现了Runnable接口 Thread.sleep可以让这个线程睡眠一段时间,把机会留给其他线程 1.2 Ball.java只做了两件事,这两件事分别是什么?BallComponent对象是干

201621123037 《Java程序设计》第11周学习总结

作业11-多线程 标签(空格分隔): Java 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallRunnable类有什么用?为什么代码中需要调用Thread.sleep进行休眠? 答: 作用: BallRunnable类实现了Runnable接口之后,可以多个程序的线程处理同一资源,其中运用run()方法给线程分配任务.run()方法中通过循环用mo

201621123057 《Java程序设计》第11周学习总结

1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallRunnable类有什么用?为什么代码中需要调用Thread.sleep进行休眠? 答: BallRunnable 类 implements Runnable 接口,给线程任务:在其中的run方法中调用move()和repaint()函数实现运动轨迹. 调用Thread.sleep进行休眠是为了延缓线

201621123083 《Java程序设计》第11周学习总结

1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallRunnable类有什么用?为什么代码中需要调用Thread.sleep进行休眠? BallRunnable类实现了Runnable接口,实现多线程 调用Thread.sleep进行休眠是为了延缓线程完成的时间,使我们能看到小球的运行过程及轨道 1.2 Ball.java只做了两件事,这两件事分别是什

20162305 2017-2018-1 《程序设计与数据结构》第11周学习总结

20162305 2017-2018-1 <程序设计与数据结构>第11周学习总结 教材学习内容总结 哈希算法:哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值.哈希值是一段数据唯一且极其紧凑的数值表示形式.如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值.要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性.一般用于快速查找和加密算法. 哈希函数:哈希函数(英语:Hash Function

20145239 《信息安全系统设计基础》第11周学习总结

20145239 <信息安全系统设计基础>第11周学习总结 教材学习内容总结 8.1 异常 从处理器运行开始到结束,程序计数器假设一个序列的值a0a1......an-1,这个控制转义序列叫做处理器的控制流. 异常,就是控制流中的突变,用来响应处理器状态中的某些变化. 状态的变化称为事件,在任何情况下,当处理器检测到有事件发生时,会通过一张叫做异常表的跳转表,进行一个间接过程调用到专门处理程序--异常处理程序.当异常处理程序完成之后,根据引起引起异常的事件类型,会发生以下三种情况之一: 处理程

2016/11/23 学习总结

今天学了JDK中的常用类 Date和Calendar以前就用过,但今天再看还是跟第一次用一样.果然这些工具就要常用才行呢-- 老师让用MarkdownPad来作笔记,支持html,很溜啊,我是不是应该再过一遍HTML啊,全忘了... 摘抄了一些笔记-- 11/23学习笔记: JDK常用类 1. System类 7. DateFormate抽象类与SimpleDateFormate类 2. Runtime类 8. Calendar抽象类与GregorianCalenlar类 3. String类

2015.11.06 学习Ubuntu下常用命令

2015.11.06 学习Ubuntu下常用命令 1.关闭防火墙:ufw disable 2.开启防火墙:ufw enable 3.防火墙状态:ufw status 4.查看占用的端口:#lsof -i 5.查看某一个端口:#lsof -i:8080  或者是: #netstat -apn|grep 8080————接着:#ps -aux|grep 进程号 6.结束占用端口的进程:#killall 进程名 7.自己写一遍,记得牢!

201521123045 &lt;java程序设计&gt;第11周学习总结

201521123045 <java程序设计>第11周学习总结 1. 本周学习总结 2. 书面作业 2. 书面作业 Q1.1.互斥访问与同步访问完成题集4-4(互斥访问)与4-5(同步访问) import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.Condition; class Account{ private int balance; private Lock lock = new