现代程序设计 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]带有时间戳的对象 ...
随机推荐
- Windows下IIS以FastCGI模式运行PHP
由于PHP5.3 的改进,原有的IIS 通过isapi 方式解析PHP脚本已经不被支持,PHP从5.3.0 以后的版本开始使用微软的 fastcgi 模式,这是一个更先进的方式,运行速度更快,更稳定. ...
- bzoj1913
这是一道好题,要求每个三点圆覆盖的点数和 我们可以算四边形的贡献,四边形显然分成两种:凸四边形和凹四边形 显然,凹四边形的覆盖只可能是三个点组成三角形包含另一个点,所以贡献是1 凸四边形,其最小圆覆盖 ...
- easyui-dialog中文件上传处理
function openDialog() { // $('#dlg').dialog('open'); //EasyUi的dialog中文件上传,后台获取不到文件,需要改写为下面这样 $(" ...
- UVa 1252 (状压DP + 记忆化搜索) Twenty Questions
题意: 有n个长为m的各不相同的二进制数(允许存在前导0),别人已经事先想好n个数中的一个数W,你要猜出这个数. 每次只可以询问该数的第K为是否为1. 问采用最优询问策略,则最少需要询问多少次能保证猜 ...
- BZOJ1048: [HAOI2007]分割矩阵
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1048 题解:搞清题意之后来个记忆化爆搜就行了. 代码: #include<cstdio& ...
- Facebook存储技术方案:找出“暖性BLOB”数据
Facebook公司已经在其近线存储体系当中彻底弃用RAID与复制机制,转而采用分布式擦除编码以隔离其所谓的“暖性BLOB”. 暖性?BLOB?这都是些什么东西?大家别急,马上为您讲解: BLOB—— ...
- Ubuntu解决Sublime Text 2安装GBK Encoding Support插件仍然乱码
Ubuntu 12.04 32位下,为Sublime Text 2安装Package Control: 1. 用Ctrl+~打开控制台,输入 import urllib2,os; pf='Packag ...
- 06day1
Rabbit Number 枚举 [问题描述] 设 S(N)表示 N 的各位数字之和,如 S(484)=4+8+4=16,S(22)=2+2=4.如果一个正整数 x满足 S(x*x)=S(x)*S(x ...
- javaScript的函数(Function)对象的声明(@包括函数声明和函数表达式)
写作缘由: 平时再用js写函数的时候,一般都是以惯例 function fn () {} 的方式来声明一个函数,在阅读一些优秀插件的时候又不免见到 var fn = function () {} 这种 ...
- hdu 1211 RSA
// 表示题目意思我是理解了蛮久 英语太水了 //首先这是解密公式 m=c^d mod n// 给你 p q e 然后 n=p*q fn=(p-1)*(q-1)// 给你 e,根据公式 e*d mod ...