现代程序设计 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.htmlC++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的更多相关文章

  1. 标准C程序设计七---07

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  2. 现代程序设计homework——04

    题目: 详见:http://www.cnblogs.com/xinz/p/3341551.html 题目本身确实很难,“很难想到一个比较优雅的算法”,这是一个老师请来专门讲解这道题的大牛的原话.确实, ...

  3. 软工+C(9): 助教指南,持续更新...

    上一篇:提问与回复 下一篇:从命令行开始逐步培养编程能力(Java) 目录: ** 0x00 Handshake ** 0x01 点评 ** 0x02 评分 ** 0x03 知识储备 ** 0x04 ...

  4. 2012年游戏软件开发独立本科段01B0815自考科目教材

    代码-----------教材名----------------------------版本----------作者 03708--------中国近现代史纲要----------------高教08 ...

  5. 20145219 《Java程序设计》第07周学习总结

    20145219 <Java程序设计>第07周学习总结 教材学习内容总结 认识时间与日期 时间的度量 1.格林威治时间(GMT):通过观察太阳而得,因为地球公转轨道为椭圆形且速度不一,本身 ...

  6. 20145210 《Java程序设计》第07周学习总结

    教材学习内容总结 第十二章 Lambda 12.1 认识Lambda语法 •Lambda 教材的引入循序渐近.深入浅出 •如果使用JDK8的话,可以使用Lambda特性去除重复的信息,例: Compa ...

  7. 长春理工大学第十四届程序设计竞赛(重现赛)L.Homework Stream

    链接:https://ac.nowcoder.com/acm/contest/912/L 题意: 作为大珩班尖子生,小r每天有很多作业要完成,例如工图.工图和工图. 很显然,做作业是要有顺序的.作业之 ...

  8. c语言1作业07

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/9932 我在这个课程的目 ...

  9. Java程序设计学习笔记(一)

    时间:2015-6-2 23:04 程序员,程序猿,程序媛,码农 -------------------------------------------------------   --Java的应用 ...

  10. 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

随机推荐

  1. !!流行的php面试题及答案

    分类: 1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中:而链接到当前页面的URL记录在预定义变量(2)中. 答:echo $_SERVER['PHP_SELF']; ...

  2. python生成验证码脚本

    最近每天都用python写一个小的脚本,练习使用python语法. 验证码的生成: 这里使用了python的图像处理库PIL,安装PIL的过程中出了一个小麻烦,就使用Pillow-win32的一个文件 ...

  3. hive 学习笔记——表的入门操作和命令

    1.受控表(managed table)包括内部表.分区表.桶表: 1.1.分区表 创建分区表: create table banji(id INT,name STRING) partitioned ...

  4. WIN7建立网络映射磁盘

    建立网络映射磁盘 如果需要经常访问网络中的同一个共享文件夹,则可以将这个共享文件夹直接映射为本地计算机中的一个虚拟驱动器.其具体操作如下. (1)双击桌面上"计算机"图标,打开&q ...

  5. window注册表

    打开注册表: 可以用快捷键 win + r  ,然后输入 Regedit 回车,会打开注册表. 注册表添加一个键值对到 操作如下: 1.先创建一个 .reg 后缀的文件. 2.文件内容如下: Wind ...

  6. parseInt和valueOf

    .parseInt和valueOf.split static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行分析. static Integer valueOf( ...

  7. Linux编译安装Darwin Streaming Server 6.0.3

    买回来VPS后就一直想在上面搭建一个流媒体服务,在网上搜索了很多资料,大部分都是介绍Linux中安装Darwin Streaming Server 5.5.5版本,因为这个版本提供了针对linux的安 ...

  8. UIView 设置alpha后, 子view也随着变化alpha, 解决方法

    //        _closeContainerBar.alpha = 0.7; _closeContainerBar.backgroundColor = [[UIColor blackColor] ...

  9. 移动开发之浅析cocos2d-x的中文支持问题

    题记:这阵子一直在学习cocos2d-x,其跨平台的特性确实让人舒爽,引擎的框架概念也很成熟,虽然相应的第三方工具略显单薄,但也无愧是一件移动开发的利器啊,有兴趣的朋友有时间就多了解吧. 使用引擎的过 ...

  10. Android UncaughtExceptionHandler,捕获错误

    最近在做个项目,需要在程序出现运行时异常和错误导致程序crash时进行一些操作,找到一个方法 Thread.setDefaultUncaughtExceptionHandler(new Uncaugh ...