现代程序设计 homework-07
现代程序设计 homework-07
这次作业是要阅读C++11的新特性,按照老师blog提供的链接稍微学习了一下,一下就是一些学习总结(或者说就是介绍)之类的;由于英文能力有限,并且很多中文资料也都看得不是很懂,可能很多地方理解不深,请谅解。
阅读 C++11 的新特性并写博客分享
首先自然看的是blog正文中给出的链接:http://msdn.microsoft.com/en-us/library/hh279654.aspx (Welcome Back to C++ (Modern C++));
这篇文章应该是关于Modern C++的预览,介绍了Modern C++ 所强调的几点,比如以堆栈为基础(stack-based)定义的范围,自动(auto)类型推断,机智(smart)的指针,Standard template library (STL) 以及lambda函数等。之后该文还介绍了Modern C++的一些优点,比如auto类型,for_each,shared_ptr以及作用于硬件方面的优势。
接下来看的是疑似C++开发团队blog里的一片文章:http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx(C++11 Features in Visual C++ 11);
这篇文章介绍了新版本的C++标准的一些特性。接下来还列出VC10和VC11的功能支持对比表(包括核心特征,并发方面等)。接下来就是简要介绍一些表中的特性,比如说右值引用,lambda表达式,还有一些有关于多线程并发的介绍(比如atomics,memory model)等,还列出了一些新的头文件以及其他特性的介绍。
跟随老师blog中的步伐,又看了:http://msdn.microsoft.com/en-us/library/vstudio/hh567368.aspx(Support For C++11 Features)。这篇文章应该介绍的是Visual C++ 2013对于C++11的支持功能的说明。首先看到的又是一个对比表,比较的是Visual Studio 2010,2012和2013三个版本对于C++11 Core Language Features的支持情况,通过这个表我们可以看出在各个版本的VS中对于C++11各特性的支持。接下来的内容和上一篇的开发团队博客中的内容很像,就是简要介绍一下特性表中一些比较重要的内容(喜闻乐见,最开头的两个我们看到又是右值引用和lambda函数)。内容上其实和上一篇开发团队的blog是差不多的。
接着看老师提供的链接,这次是:http://herbsutter.com/elements-of-modern-c-style/(Elements of Modern C++ Style)。作者是Herb Sutter,wikipedia里说他是一位高大上的C++专家。果然,文章一开头就很高大上,引用了C++之父 Bjarne Stroustrup的话"C++11 feels like a new language."(= =,这句话从弱菜口中说出就是标准的弱菜宣言,可到了大神口中,意境完全就不一样了是吧)好吧,回到这篇文章上,作者开头就说这篇文章主要说的是一些让C++11看上去像新语言的东西,讲了如何改变一些以前写C++的习惯而用C++11的习惯。下面就说了要多用auto类型、用smart pointer(机智的指针?)、循环范围的新写法、多用begin(), end()、初始化列表以及大家喜闻乐见的Lambda表达式和Move/&&。这篇文章应该是目前这几篇中比较详细的介绍C++11新特性的了,因为里面每个地方都有代码例子说明,受益匪浅。
老师blog里的下一条链接是wikipedia的C++11的条目,非常详细的介绍了C++11,尤其是C++11中新特性的介绍,生动形象,举例丰富,想大致了解C++11看这篇文章非常有用。(什么?英文看不懂?。。难道不会去参考中文版的吗。。)
再接下来的一篇就不能用详细来说了,是C++之父亲自撰写并维护的文档了:http://www.stroustrup.com/C++11FAQ.html(C++11 - the new ISO C++ standard)。要真正学懂C++11的话,这篇文档应该是必看的吧。C++11每一条新特性都写的很清楚,而且也都有例子,再而且这可是官方正式的哦(应该是吧)。这次只是稍微浏览了一下,以后有哪些地方不太清楚,首先参考这个。
再来就是老师blog里的最后一条链接了,这应该是国内一名大神的C++11学习笔记,里面有很多他在学习使用C++11新特性的介绍和感想,对于熟练使用C++11新特性来说很有参考价值。
5 个问题
- lambda表达式除了结合一些STL使用,具体还有哪些用途?(同“怎么吃?”)
- const/non-const lvalue/rvalue 和 T&、T、T&&之间的绑定关系的原理是什么?理解起来好晕。(怎么吃?)
- shared_ptr的自动删除功能是不是也要调用reset()方法,相比释放普通指针有什么优点?(好吃吗?)
- move语义只能转移non-const rvalue吗?能不能转移non-const lvalue?(能吃吗?)
- 在C++11开发团队blog中看到了这么一条"Memory model: N2429 made the Core Language recognize the existence of multithreading, but there appears to be nothing for a compiler implementation to do (at least, one that already supported multithreading). So it's N/A in the table."。是不是说明多线程的内存管理模型还没有建立好,那么C++中多线程是安全的吗?(能吃吗?)
现代程序设计 homework-07的更多相关文章
- 标准C程序设计七---07
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- 现代程序设计homework——04
题目: 详见:http://www.cnblogs.com/xinz/p/3341551.html 题目本身确实很难,“很难想到一个比较优雅的算法”,这是一个老师请来专门讲解这道题的大牛的原话.确实, ...
- 软工+C(9): 助教指南,持续更新...
上一篇:提问与回复 下一篇:从命令行开始逐步培养编程能力(Java) 目录: ** 0x00 Handshake ** 0x01 点评 ** 0x02 评分 ** 0x03 知识储备 ** 0x04 ...
- 2012年游戏软件开发独立本科段01B0815自考科目教材
代码-----------教材名----------------------------版本----------作者 03708--------中国近现代史纲要----------------高教08 ...
- 20145219 《Java程序设计》第07周学习总结
20145219 <Java程序设计>第07周学习总结 教材学习内容总结 认识时间与日期 时间的度量 1.格林威治时间(GMT):通过观察太阳而得,因为地球公转轨道为椭圆形且速度不一,本身 ...
- 20145210 《Java程序设计》第07周学习总结
教材学习内容总结 第十二章 Lambda 12.1 认识Lambda语法 •Lambda 教材的引入循序渐近.深入浅出 •如果使用JDK8的话,可以使用Lambda特性去除重复的信息,例: Compa ...
- 长春理工大学第十四届程序设计竞赛(重现赛)L.Homework Stream
链接:https://ac.nowcoder.com/acm/contest/912/L 题意: 作为大珩班尖子生,小r每天有很多作业要完成,例如工图.工图和工图. 很显然,做作业是要有顺序的.作业之 ...
- c语言1作业07
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/9932 我在这个课程的目 ...
- Java程序设计学习笔记(一)
时间:2015-6-2 23:04 程序员,程序猿,程序媛,码农 ------------------------------------------------------- --Java的应用 ...
- 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现
[实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...
随机推荐
- int和integer;Math.round(11.5)和Math.round(-11.5)
int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Integer是java为int提供的封装类.int的默认值为0,而Integer的默认值为null,即Integer可 ...
- UVa 11389 (贪心) The Bus Driver Problem
题意: 有司机,下午路线,晚上路线各n个.给每个司机恰好分配一个下午路线和晚上路线. 给出行驶每条路线的时间,如果司机开车时间超过d,则要付加班费d×r. 问如何分配路线才能使加班费最少. 分析: 感 ...
- 模仿 "淘宝彩票" 的随机选球投注效果!
我个人比较喜欢看网页的效果,前几天看了淘宝的“淘宝彩票”,今天仿造做了一个,我觉得比淘宝的体验要好. 查看 “淘宝彩票” 的网页源码发现,主要是用到了Css3 transform 的 Matrix 来 ...
- jQuery的威力
jQuery如此之好用,和其在获取对象时使用与CSS选择器兼容的语法有很大关系,毕竟CSS选择器大家都很熟悉(关于CSS选择器可以看看十分钟搞定CSS选择器),但其强大在兼容了CSS3的选择器,甚至多 ...
- 【 D3.js 高级系列 — 9.0 】 交互式提示框
一般来说,图表中不宜存在过多文字.但是,有时需要一些文字来描述某些图形元素.那么,可以实现一种交互:当用户鼠标滑到某图形元素时,出现一个提示框,里面写有描述文字.这是一种简单.普遍的交互式,几乎适用于 ...
- 一天一个Java基础——序列化
1.概念 Java的“对象序列化”能将一个实现了Serializable接口的对象转换成一组byte,这样日后要用这个对象的时候,能把这些byte数据恢复出来,并据此重新构建那个对象. 对象序列化能实 ...
- Oracle 课程一之Oracle体系结构
课程目标 •理解ORACLE数据库体系架构—内存结构和进程 •理解SQL在数据库中的运作流程 •理解UNDO&REDO原理 •理解commit原理 1.Oracle数据库概述 •数据库:物 ...
- hdu 3461 Code Lock(并查集)2010 ACM-ICPC Multi-University Training Contest(3)
想不到这还可以用并查集解,不过后来证明确实可以…… 题意也有些难理解—— 给你一个锁,这个所由n个字母组成,然后这个锁有m个区间,每次可以对一个区间进行操作,并且区间中的所有字母要同时操作.每次操作可 ...
- java web 学习八(HttpServletResponse对象2)
一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类,
- oracle-Oracle试题
ylbtech-doc:oracle-Oracle试题 oracle-Oracle试题 1.A,返回顶部 01.{Oracle题目}你判断下面语句,有什么作用?(选择1项) GRANT upd ...