C++学习书籍推荐《Effective STL(英文)》下载

百度云及其他网盘下载地址:点我

作者简介

Scott Meyers is one of the world‘s foremost authorities on C++, providing training and consulting services to clients worldwide. He is the author of the best-selling Effective C++ series of books (Effective C++More Effective C++, and Effective STL) and of the innovative Effective C++ CD. He is consulting editor for Addison Wesley‘s Effective Software Development Series and serves on the Advisory Board for The C++ Source (http://www.artima.com/cppsource). He holds a Ph.D. in Computer Science from Brown University. His web site is http://www.aristeia.com.

目录

Preface  xi

Acknowledgments  xv

Introduction  1

Chapter 1: Containers  11

Item 1: Choose your containers with care.  11

Item 2: Beware the illusion of container-independent code.  15

Item 3: Make copying cheap and correct for objects in containers.  20

Item 4: Call empty instead of checking size() against zero.  23

Item 5: Prefer range member functions to their single-element counterparts.  24

Item 6: Be alert for C++’s most vexing parse.  33

Item 7: When using containers of newed pointers, remember to delete the pointers before the container is destroyed.  36

Item 8: Never create containers of auto_ptrs.  40

Item 9: Choose carefully among erasing options.  43

Item 10: Be aware of allocator conventions and restrictions.  48

Item 11: Understand the legitimate uses of custom allocators.  54

Item 12: Have realistic expectations about the thread safety of STL containers.  58

Chapter 2: vector and string  63

Item 13: Prefer vector and string to dynamically allocated arrays.  63

Item 14: Use reserve to avoid unnecessary reallocations.  66

Item 15: Be aware of variations in string implementations.  68

Item 16: Know how to pass vector and string data to legacy APIs.  74

Item 17: Use “the swap trick” to trim excess capacity.  77

Item 18: Avoid using vector<bool>.  79

Chapter 3: Associative Containers  83

Item 19: Understand the difference between equality and equivalence.  83

Item 20: Specify comparison types for associative containers of pointers. 88

Item 21: Always have comparison functions return false for equal values.  92

Item 22: Avoid in-place key modification in set and multiset.  95

Item 23: Consider replacing associative containers with sorted vectors.  100

Item 24: Choose carefully between map::operator[] and map::insert when efficiency is important.   106

Item 25: Familiarize yourself with the nonstandard hashed containers.  111

Chapter 4: Iterators  116

Item 26: Prefer iterator to const_iterator, reverse_iterator, and const_reverse_iterator.  116

Item 27: Use distance and advance to convert const_iterators to iterators.   120

Item 28: Understand how to use a reverse_iterator’s base iterator.  123

Item 29: Consider istreambuf_iterators for character by character input.  126

Chapter 5: Algorithms  128

Item 30: Make sure destination ranges are big enough.  129

Item 31: Know your sorting options.  133

Item 32: Follow remove-like algorithms by erase if you really want to remove something.  139

Item 33: Be wary of remove-like algorithms on containers of pointers.  143

Item 34: Note which algorithms expect sorted ranges.  146

Item 35: Implement simple case-insensitive string comparisons via mismatch or lexicographical_compare.  150

Item 36: Understand the proper implementation of copy_if.  154

Item 37: Use accumulate or for_each to summarize ranges.  156

Chapter 6: Functors, Functor Classes, Functions, etc.  162

Item 38: Design functor classes for pass-by-value.  162

Item 39: Make predicates pure functions.  166

Item 40: Make functor classes adaptable.  169

Item 41: Understand the reasons for ptr_fun, mem_fun, and mem_fun_ref.  173

Item 42: Make sure less<T> means operator<.  177

Chapter 7: Programming with the STL  181

Item 43: Prefer algorithm calls to hand-written loops.  181

Item 44: Prefer member functions to algorithms with the same names.  190

Item 45: Distinguish among count, find, binary_search, lower_bound, upper_bound, and equal_range.  192

Item 46: Consider function objects instead of functions as algorithm parameters.  201

Item 47: Avoid producing write-only code.  206

Item 48: Always #include the proper headers.  209

Item 49: Learn to decipher STL-related compiler diagnostics.  210

Item 50: Familiarize yourself with STL-related web sites.  217

Bibliography  225

Appendix A: Locales and Case-Insensitive String Comparisons  229

Appendix B: Remarks on Microsoft’s STL Platforms  239

Index  245

百度云及其他网盘下载地址:点我

原文地址:https://www.cnblogs.com/awesome-share/p/10046739.html

时间: 2024-08-05 03:24:18

C++学习书籍推荐《Effective STL(英文)》下载的相关文章

C++学习书籍推荐《Effective C++ 第三版》下载

百度云及其他网盘下载地址:点我 编辑推荐 <Effective C++:改善程序与设计的55个具体做法(第3版)(中文版)(双色)>前两个版本抓住了全世界无数程序员的目光.原因十分明显:Scott Meyers极富实践意义的C++研讨方式,描述出专家用以产出干净.正确.高效代码的经验法则和行事法则--也就是他们几乎总是做或不做的某些事.<Effective C++:改善程序与设计的55个具体做法(第3版)(中文版)(双色)>一共组织55个准则,每一条准则描述一个编写出更好的C++的

c++学习书籍推荐《C++设计新思维》下载

百度云及其他网盘下载地址:点我 译序by 侯捷 i 译序by 於春景 iii 目录 v 序言by scott meyers xi 序言by john vlissides xv 前言 xvii 致谢 xxi 第一篇 技术(techniques) 1 第1章 基于policy的class设计(policy-based class design) 3 1.1 软件设计的多样性(multiplicity) 3 1.2 全功能型(do-it-all)接口的失败 4 1.3 多重继承(multiple in

大数据学习路线及各阶段学习书籍推荐

大数据学习路线及各阶段学习书籍推荐!废话不多说,直接切入主题,有需要的小伙伴可以参考学习! 阶段一.大数据基础--java语言基础方面 (1)Java语言基础 Java开发介绍.熟悉Eclipse开发工具.Java语言基础.Java流程控制.Java字符串.Java数组与类和对象.数字处理类与核心技术.I/O与反射.多线程.Swing程序与集合类 (2) HTML.CSS与JavaScript PC端网站布局.HTML5+CSS3基础.WebApp页面布局.原生JavaScript交互功能开发.

Java学习书籍推荐

一.Java学习书籍推荐 1. 核心基础知识 <图解HTTP> <大话数据结构> <数据结构与算法分析:C语言描述> <算法图解> <算法 第四版> 2.Java相关 <Effective java > <Head First Java.第二版> <JAVA网络编程 第4版> 3.JavaWeb相关 <深入分析Java Web技术内幕> <Spring实战(第4版)> <Redis

C语言学习书籍推荐《C Primer Plus(中文版)(第5版)》下载

普拉塔 (Prata S.) (作者), 云巅工作室 (译者) <C Primer Plus(中文版)(第5版)>共17章,介绍了C语言的基础知识,包括数据类型.格式化输入输出.运算符.表达式.流程控制语句.函数.数组和指针.字符串操作.内存管理.位操作等,知识内容都针对C99标准:另外,<C Primer Plus(中文版)(第5版)>强化了对指针的讨论,并引入了动态内存分配的概念,也讨论了C预处理器和C库函数.高级数据表示(数据结构)方面的内容. 下载地址:点我 编辑推荐 作为

java虚拟机的学习书籍推荐

javaEE开发已然是一个老生常谈的话题了,但经典之所以会成为经典,就是因为有可重复琢磨之处,每一次的反复推敲都会有不一样的收获.如果你不满足于做一个只会写if…else…的Java程序员,而是希望更进一步,我随便举几个例子吧: 1.了解Java代码的底层运行机制 2.定位性能问题 3.对整个系统进行性能调优 4.解决各种奇奇怪怪的线上线下问题 5.更加高级别的,为自己的项目量身定做一款适合自己项目的虚拟机 今天小编在给大家传授java技术的之外,给大家介绍一本关于java虚拟机的书籍,仔细研读

《Effective Java 第三版》新条目介绍

前言 从去年的3月份起我就在开始读<Effective Java 第二版>,当然,我读的是中文版的:可能是我理解能力还不行,对于书中的内容总是感觉理解困难:就拿第一章的内容「创建和销毁对象」来说吧,这是我读的次数最多的一章,想必原因大家也是明白的,每次我读不下去的时候,我就从头开始读,所以,现在我对这本书的第一章是最为熟悉的了.后来,有一次我上网看到有网友说这本书确实和绝大部分的翻译书籍一样,对于有些原文中的内容翻译的不是很流畅,所以会导致阅读的人感觉难以理解:于是,我就斗胆下了本英文的原版来

数据结构:C++语言版 第三版 PDF下载

网盘下载地址:数据结构:C++语言版 第三版 PDF下载 – 易分享电子书PDF资源网 作者: 邓俊辉 出版社: 清华大学出版社 副标题: C++语言版 第三版 出版年: 2013-9 页数: 389 定价: 39.00元 装帧: 平装 丛书: 清华大学计算机系列教材 ISBN: 9787302330646 内容简介 · · · · · · <清华大学计算机系列教材:数据结构(C++语言版)(第3版)>按照面向对象程序设计的思想,根据作者多年的教学积累,系统地介绍各类数据结构的功能.表示和实现

C++学习书籍推荐

著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:史嘉炜链接:https://www.zhihu.com/question/20410487/answer/15055637来源:知乎 阶段 1<Essential C++> 下载地址:http://download.csdn.net/detail/jerryjbiao/4144693这是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程.本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性

Linux运维人员成长之路学习书籍推荐

对于从事或者即将从事Linux运维的童鞋来说,学习书籍和视频课程两者缺一不可,当然最重要的是要付诸于实践.今天为大家推荐一些不错的书籍,希望对对大家有帮助. 入门书: <鸟哥的私房菜(基础篇)> <鸟哥的私房菜(服务篇)> <Linux命令行与Shell脚本编程大全(第2版)> <UNIX/Linux 系统管理技术手册> <UNIX编程艺术> 计算机及操作系统原理书: <深入理解计算机系统(原书第2版)> <现代操作系统 (原书