当前位置:首页 > 工业技术
Effective STL影印本
Effective STL影印本

Effective STL影印本PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:(美)迈耶斯著
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2003
  • ISBN:7508314972
  • 页数:260 页
图书介绍:本书由世界顶尖级的C++权威Scott Meyers编著,阐述了如何有效地使用STL(Standard Template Library, 标准模板库)进行编程。书中讲述了如何将STL组件组合在一起,从而利用库的设计。这些内容会帮助你针对简单的问题开发出简单、直接的解决方案,并且针对复杂的问题开发出精致的解决方案。书中还描述了常见的STL使用错误,并告诉你如何避免这些错误。
《Effective STL影印本》目录
标签:影印本 影印

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 theri single-element counterparts. 24

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

Item 7:When using containers of newed poninters,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 expectation 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 aviod unnecessary reallocations. 66

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

Item 16:Konw 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 a container s 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 lexicographicl_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 wed sites. 217

Bibliography 225

Appendix A:Locales and Case-Insensitive String Comparisons 229

Appendix B:Remarks on Microsoft s STL Platforms 239

Index 245

返回顶部