现代程序设计 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]带有时间戳的对象 ...
随机推荐
- 选择语句----switch case
今天学习了选择语句的 switch case是多选一的情况可以使用. 案例: //分别输入月份 几号 输出是今年的多少天 //每年的1,3,5,7,8,10,12月是31天 //今年的2月是28天 其 ...
- IIS发布报错
IIS发布报错一般原因 ISAPI和CGI限制作为IIS与ASP.NET的连接桥梁
- iOS开原项目
http://www.lanrenios.com/ios/project/2013/0729/1433.html http://www.cnblogs.com/xiaobaizhu/archive/2 ...
- 简单易懂的命名空间及use的使用
最近一段时间在研究php框架,一直想的什么时候才能开发出自己的框架,当然这是为了提升自己的编程水平,同时能把平时学的零散的东西糅合在一块熟练应用.但是开发一个框架根本不知道如何做起,先开发什么,虽然p ...
- gulp 使用mailgun服务器发送邮件
1.首先你需要创建一个 mailgun 账户,没有请去注册一个. 注册之后会有 mailgun 会给你一个默认的子域名,你就可以使用这个子域名去发送邮件了,如下图: 2.gulp创建任务: var s ...
- JdbcTemplate查询数据 三种callback之间的区别
JdbcTemplate针对数据查询提供了多个重载的模板方法,你可以根据需要选用不同的模板方法. 如果你的查询很简单,仅仅是传入相应SQL或者相关参数,然后取得一个单一的结果,那么你可以选择如下一组便 ...
- ganglia对于tomcat进程的res内存监控扩展
ganglia是采用yum的安装,因此安装相关内容路径可能不同,但是不影响插件的扩展编写: 本次介绍的扩展是采用python脚本进行扩展,因此监控节点上需要安装python的相关插件: sudo yu ...
- UVa 12563 Jin Ge Jin Qu hao【01背包】
题意:给出t秒时间,n首歌分别的时间a[i],还给出一首长度为678的必须唱的劲歌金曲,问最多能够唱多少首歌(只要最后时间还剩余一秒,都可以将劲歌金曲唱完) 用dp[i]代表花费i时间时唱的歌的最大数 ...
- UVA 4080 Warfare And Logistics 战争与物流 (最短路树,变形)
题意: 给一个无向图,n个点,m条边,可不连通,可重边,可多余边.两个问题,第一问:求任意点对之间最短距离之和.第二问:必须删除一条边,再求第一问,使得结果变得更大. 思路: 其实都是在求最短路的过程 ...
- TCP协议的一些问题
1 连接握手三次 解释1:已失效的连接请求报文段 情况下如下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server.本 ...