zoukankan      html  css  js  c++  java
  • 现代程序设计 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.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++中多线程是安全的吗?(能吃吗?)
  • 相关阅读:
    数据分析师入门——用 Pandas 进行数据预处理:数据清洗与可视化
    hdu 1532 Dinic模板(小白书)
    二分图的最大匹配、完美匹配和匈牙利算法(转)
    HDU 1532 (Dinic算法)
    HDU 1532 Drainage Ditches EK算法 flod算法
    Edmonds_Karp 算法入门详解(转)
    UVa 10801
    Codeforces Round #359 (Div. 2)C
    Codeforces Round #358 (Div. 2)B. Alyona and Mex
    int long long范围
  • 原文地址:https://www.cnblogs.com/z-mac/p/3415147.html
Copyright © 2011-2022 走看看