本书是 Effective C++ 的第 3 卷,被评为“值得所有 C++ 程序员阅读的 C++ 书籍之一”。本书详细讲述了使用 STL 的 50 条指导原则,并提供了透彻的分析和深刻的实例,实用性极强,是 C++ 程序员必备的基础书籍。C++ 的标准模板库(STL)是革命性的,要用好 STL 并不容易。本书作者 Scott Meyers 揭示了专家总结的一些关键规则,包括专家们总是采用的做法,以及专家们总是避免的做法。通过这些规则,STL 程序员可以最大限度地使用 STL。
文章作者: 奇点创客
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 奇点创客!
相关推荐

2023-12-01
More Effective C++
继 Effective C++ 之后,Scott Meyers 于 1996 年推出这本“续集”。条款变得比较少,页数倒是多了一些,原因是这次选材比“第一集”更高阶。尤其是第 5 章。Meyers 将此章命名为技术(techniques),并明白告诉你,其中都是一些 patterns(模式),例如 virtual contructors(虚构造函数),smart pointers(智能指针),reference counting(引用计数),proxy classes(策略类),double dispatching(双重派发)……这一章的每个条款篇幅都长达 15~30 页之多,实在让人有“山重水复疑无路,柳暗花明又一村”之叹。 基础议题条款 1:仔细区分指针和引用条款 2:最好使用 C++ 转型操作符条款 3:绝对不要以多态反诗处理数组条款 4:非必要不提供默认构造函数操作符条款 5:对定制的“类型转换函数”保持警觉条款 6:区分自增/自减操作符的前置和后置形式条款 7:千万不要重载 &&,|| 和 , 操作符条款 8:了解各种不同意义的 new 和...

2023-11-01
Effective C++
有人说 C++ 程序员可以分为两类,读过 Effective C++ 的和没读过的。世界级 C++ 大师 Scott Meyers 成名之作的第三版的确当得起这样的评价。当您读过本书之后,就获得了迅速提升自己 C++ 功力的一个契机。 在国际上,本书所引起的反响,波及整个计算机的出版领域,余音至今未绝。几乎在所有 C++ 书籍的推荐名单上,本书都会位于前三名。作者高超的技术把握力、独特的视角、诙谐轻松的写作风格、独具匠心的内容组织,都受到极大的推崇和效仿。这种奇特的现象,只能解释为人们对这本书衷心的赞美和推崇。 这本书不是读完一遍就可以束之高阁的快餐读物,也不是用于解决手边问题的参考手册,而是需要您去反复阅读体会的,C++ 是真正程序员的语言,背后有着精深的思想与无与伦比的表达能力,这使得它具有类似宗教般的魅力。希望这本书能够帮助您跨越 C++ 的重重险阻,领略高处才有的壮美风光,做一个成功而快乐的 C++ 程序员。 1. 让自己习惯 C++不论你的编程背景是什么,C++ 都可能让你觉得有点熟悉。它是一个威力强大的语言,带着众多特性,但是在你可以驾驭其威力并有效运用其特性之前,你...

2024-02-01
Effective Modern C++
一份宏大的作品,能够带动一个领域的蓬勃发展。C++ 社群在相对沉寂数十年之后迎来新一波浪潮,原因是,作为一门编程工具的最核心,C++ 的语言和标准库都出现巨大的拓展和强化。这一番大变革始自 2011,并分别于 2014、2017 持续进化。业界习惯性地将这些新版本统称为 Modern C++,用以区别“传统” C++。 作为知名书系的最新作品,《Effective Modern C++》的佳质和佳评一如其早期同门作品《Effective C++》和《More Effective C++》。本书延续作者 Scott Meyers 的一贯风格和质量,其最大特质就是,不但告诉我们 How,更用巨大而精良的篇幅告诉我们 Why。作者穷追猛打讲究再三的劲儿,常让我筋疲力尽,痛并快乐地爬行于某个条款之际拍案而叹:“天哪,还有下一页!” 而我,是一个在 C++ 领域已经生活了 25 年的老兵。 是的,我是一个在 C++ 领域已经生活了 25 年的老兵,这意味着我具备相当的 C++ 能力。尽管如此,面对号称全新语言的 Modern C++,我时或也有力不能逮、掩卷长叹的焦躁,特别是面对 Rval...

2023-09-01
C++ 初始化的故事
关于本书在 C++ 中,初始化是一个热门话题!互联网上充满了关于最佳实践的讨论,甚至还有关于这个主题的有趣的表情包。这种情况并不奇怪,因为有十几种方法可以初始化一个简单的整数值、有自动类型推断的复杂规则、数据成员和对象生命周期的细微差别。 于是,出现了这本书。 通过本文,你将学习在现代 C++ 中初始化各种类型的变量和数据成员的实用选项。具体来说,本书教授了多种类型的初始化、构造函数、非静态数据成员初始化、内联变量、指定初始化器等。此外,你将看到从 C++11 到 C++20 的变化和新技术,以及大量的示例来加强你的理解。 计划是解释初始化的大部分(如果不是全部的话),学习许多优秀的 C++ 技术,并了解底层到底发生了什么。 为什么你需要阅读本书?使用现代 C++(从 C++11 开始),我们有许多新特性来简化工作和代码。改进的一个方面是初始化。现代 C++ 增加了新的初始化规则,试图在保持旧行为(主要来自 C 语言)兼容性的同时简化初始化。然而,有时规则可能看起来令人困惑和复杂,甚至 ISO 委员会也可能需要在此过程中纠正一些事情。这本书将帮助你浏览这些原则,以更好地理解这个主...

2023-10-05
C++ Lambda 的故事——C++11
C++11 中的 Lambda万岁!C++ 委员会听取了开发人员的意见,在 C++11 标准中加入了 Lambda 表达式! Lambda 表达式很快就成为现代 C++ 中最具辨识度的一个特性。 你可以在 N3337(C++11 的最终草案)中阅读其完整规范,以及关于 Lambda 的单独部分:[express .prim.lambda]。 我认为委员会以一种聪明的方式在语言中添加了 Lambda。他们设计了新的语法,但随后编译器将其“展开”为一个未命名的“隐藏的”函数对象类型。这样我们就拥有了真正强类型语言的所有优点(以及缺点),使代码理解起来更加容易。 在本章,你将会学习到: Lambda 的基础语法。 如何捕获一个变量。 如何捕获一个类的非静态成员变量。 Lambda 的返回类型。 什么是闭包类型。 怎样将 Lambda 表达式转换成一个函数指针从而能够去使用 C 风格的 API. 什么是 IIFE 以及为什么它是的有用的。 如何继承一个 Lambda 表达式。 让我们出发吧! Lambda 表达式的语法下图说明了 C++11 中 Lambda 的语法: 现在让我们通...

2023-10-01
C++ Lambda 的故事——C++98/03
C++98/03 中的 Lambda作为开始,了解一些关于我们所讨论的主题的背景知识是很有必要的。为此,我们会转而回顾过去,看看那些不使用任何现代 C++ 技术的代码——即 C++98/03 规范下的代码。 在本章中,我们将会学习: 如何将旧式的函数对象传给 C++ 标准库中的各种算法。 函数对象类型的限制。 为什么辅助函数不够好。 C++0x/C++11 中引入 Lambda 的动机。 C++98/03 中的可调用对象标准库的一个基本设计思想是:对于像 std::sort,std::for_each,std::transform 等这样的泛型函数,能够接受任何可调用对象然后对输入容器中的每个元素依次调用它。然而,在 C++98/03 中,可调用对象只包括函数指针和重载了调用操作符的类类型(通常被称为“函子”)。 举例来说,我们有一个打印一个向量中所有元素的应用程序。在第一个版本中,我们使用普通的函数来实现: 12345678910111213// Ex1_1: 一个基础的函数对象.#include <algorith...
评论
公告
欢迎来到我的博客!




