开个新坑,把读Effective Modern C++的读书笔记记录一下,与以往的形式不同这次是读完书很久再回头重读,预计通过五六篇博文来写这次总共42条条目的内容。
本文包含《Effective Modern C++》中第1、2章内容的个人笔记,讨论现代c++中型别自动推导相关内容。
第1章 型别推导
C++11引入了auto和decltype型别推导关键字,并在14标准中扩充完善了这两个关键字的使用场景。本章的目的就在于厘清这两个关键字的用法,并明确编译器在推导型别时的行为。
开个新坑,把读Effective Modern C++的读书笔记记录一下,与以往的形式不同这次是读完书很久再回头重读,预计通过五六篇博文来写这次总共42条条目的内容。
本文包含《Effective Modern C++》中第1、2章内容的个人笔记,讨论现代c++中型别自动推导相关内容。
C++11引入了auto和decltype型别推导关键字,并在14标准中扩充完善了这两个关键字的使用场景。本章的目的就在于厘清这两个关键字的用法,并明确编译器在推导型别时的行为。
继上次的C++11的小结之后,很久没写些东西了(主要是懒…),那么这一次是C++14的小结。
C++14 作为一个小版本,功能上更像C++11的一个扩展版本,大部分是对11版本的一个完善。
C++11标准中新增了类型推导功能,增加了auto和decltype关键字,但是在C++11标准中并不支持将返回值声明为auto,14标准扩展了该功能,14标准后可以将所有函数包括lambda表达式的返回值声明为auto。
这是个人阅读Effective STL所做的读书笔记第五部分,包含《Effective STL》条款41~条款50的笔记内容,Effective STL读书笔记此篇完结。
事实上unary_function、binary_function已经在C++17中删除,对unary_function和binary_function进行适配的ptr_fun函数模板也已经在C++17中删除,当然在C++17完全支持的编译器之前的编译器版本ptr_fun这些仍然可以正常使用。
mem_fun和mem_fun_ref适用于当自定类容器在使用一些STL方法时,需要使用该自定类的成员方法来操作时,例如书上所举的for_each的例子:
这是个人阅读Effective STL所做的读书笔记第四部分,包含《Effective STL》条款28~条款36的笔记内容。
这是个人阅读Effective STL所做的读书笔记第三部分,包含《Effective STL》条款21~条款30的笔记内容。
关联容器由于使用比较函数来判断新数据插入位置(等价思想),如果用户自定义的比较函数对相等的值返回true,将导致新插入的相等的值插入到关联容器中,对于不允许出现复本的关联容器来说已经破坏了其规则。这里书上举了一个使用less_equal作为比较方法的set的例子,形如: