C++标准库txt,chm,pdf,epub,mobi下载 作者: [德]Nicolai M·Josuttis 出版社: 人民邮电出版社 副标题: 自学教程与参考手册 出版年: 2012-12-19 页数: 1099 定价: 128.00元 装帧: 平装 丛书: C和C++实务精选 ISBN: 9787115296870 内容简介 · · · · · ·《c++标准库——自学教程与参考手册(第2版)英文版(上、下册)》第1版自1999年出版以来便享誉全球,并一跃成为c++领域的经典畅销图书。在13年之后的今天,本书仍然被广大c++程序员奉为“案头必备的c++参考手册”并不时拜读。 《c++标准库——自学教程与参考手册(第2版)英文版(上、下册)》在第1版的基础上,全面囊括了c++11新标准中的库组件,为每个库组件提供 了详细全面的文档;介绍了各个库组件的用途和设计;清晰解释了复杂的概念;阐述了高效使用c++标注库所需要的实用编程细节、陷阱和缺陷;大部分重要类和函数的精确签名(signature)和定义;此外还包含了大量的代码示例。本书重点讲解了标准模板库(stl)其中包括检查容器、迭代器、函数对象和stl算法。本书还讲解了新的c++编程风格以该风格及对标准库的影响,其中包括lambda、基于范围的f... 作者简介 · · · · · ·Nicolai M.Josuttis,著有《C++标准库》和《C++模板》,两书都由Addison-Wesley出版。他的职务是系统架构师和技术经理。最近两年,他在一家国际电话公司中全面推广SOA。Nicolai在几个会议上办过SOA讲座,多年来他一直在发表关于这个主题的演讲。 侯俊杰(1961年9月28日-),笔名侯捷,台湾知名电脑技术专栏作家,致力于电脑技术之扎根工作,文章兼具科技之长与灵性之美[1],有读者的评语是“比作家更工程师,比工程师更作家”。大同国中、师大附中、交通大学土木系毕业、清华大学动力机械研究所硕士。曾任职工研院机械所与电通所,曾在元智大学授课,近年来多从事两岸学术交流工作。他的妻子美静是一名钢琴师,侯俊杰说他自己“嗜咖啡。妻严不能常得。” 目录 · · · · · ·1 about this book 11.1 whythisbook 1 1.2 before reading this book 2 1.3 style and structure of the book 2 1.4 howtoreadthisbook 4 1.5 stateof theart 5 · · · · · ·() 1 about this book 1 1.1 whythisbook 1 1.2 before reading this book 2 1.3 style and structure of the book 2 1.4 howtoreadthisbook 4 1.5 stateof theart 5 1.6 example code and additional information 5 1.7 feedback 5 2 introduction to c++ and the standard library 7 2.1 history of thec++standards 7 2.1.1 common questions about the c++11 standard 8 2.1.2 compatibility between c++98 and c++11 9 2.2 complexity and big-o notation 10 3 new language features 13 3.1 new c++11 language features 13 3.1.1 important minor syntax cleanups 13 3.1.2 automatic type deduction with auto 14 3.1.3 uniform initialization and initializer lists 15 3.1.4 range-based for loops 17 .3.1.5 move semantics and rvalue references 19 3.1.6 newstringliterals 23 3.1.7 keyword noexcept 24 3.1.8 keyword constexpr 26 3.1.9 newtemplatefeatures 26 3.1.10 lambdas 28 3.1.11 keyword decltype 32 3.1.12 new function declaration syntax 32 3.1.13 scoped enumerations 32 3.1.14 new fundamental data types 33 3.2 old “new” language features 33 3.2.1 explicit initialization for fundamental types 37 3.2.2 definition of main() 37 4 general concepts 39 4.1 namespace std 39 4.2 headerfiles 40 4.3 error and exception handling 41 4.3.1 standard exception classes 41 4.3.2 members of exception classes 44 4.3.3 passing exceptions with class exception_ptr 52 4.3.4 throwing standard exceptions 53 4.3.5 deriving from standard exception classes 54 4.4 callableobjects 54 4.5 concurrency and multithreading 55 4.6 allocators 57 5 utilities 59 5.1 pairs and tuples 60 5.1.1 pairs 60 5.1.2 tuples 68 5.1.3 i/o for tuples 74 5.1.4 conversions between tuples and pairs 75 5.2 smart pointers 76 5.2.1 class shared_ptr 76 5.2.2 class weak_ptr 84 5.2.3 misusing shared pointers 89 5.2.4 shared and weak pointers in detail 92 5.2.5 class unique_ptr 98 5.2.6 class unique_ptr indetail 110 5.2.7 class auto_ptr 113 5.2.8 final words on smart pointers 114 5.3 numericlimits 115 5.4 type traits and type utilities 122 5.4.1 purposeoftypetraits 122 5.4.2 typetraits indetail 125 5.4.3 referencewrappers 132 5.4.4 function type wrappers 133 5.5 auxiliary functions 134 5.5.1 processing the minimum and maximum 134 5.5.2 swapping two values 136 5.5.3 supplementary comparison operators 138 5.6 compile-time fractional arithmetic with class ratio[] 140 5.7 clocks andtimers 143 5.7.1 overviewof thechronolibrary 143 5.7.2 durations 144 5.7.3 clocks and timepoints 149 5.7.4 date and time functions by c and posix 157 5.7.5 blocking with timers 160 5.8 header files [cstddef], [cstdlib], and [cstring] 161 5.8.1 definitions in [cstddef] 161 5.8.2 definitions in [cstdlib] 162 5.8.3 definitions in [cstring] 163 6 the standard template library 165 6.1 stl components 165 6.2 containers 167 6.2.1 sequence containers 169 6.2.2 associative containers 177 6.2.3 unordered containers 180 6.2.4 associativearrays 185 6.2.5 other containers 187 6.2.6 container adapters 188 6.3 iterators 188 6.3.1 further examples of using associative and unordered containers 193 6.3.2 iteratorcategories 198 6.4 algorithms 199 6.4.1 ranges 203 6.4.2 handling multiple ranges 207 6.5 iteratoradapters 210 6.5.1 insert iterators 210 6.5.2 streamiterators 212 6.5.3 reverse iterators 214 6.5.4 move iterators 216 6.6 user-defined generic functions 216 6.7 manipulating algorithms 217 6.7.1 “removing” elements 218 6.7.2 manipulating associative and unordered containers 221 6.7.3 algorithms versus member functions 223 6.8 functions as algorithm arguments 224 6.8.1 using functions as algorithm arguments 224 6.8.2 predicates 226 6.9 usinglambdas 229 6.10 function objects 233 6.10.1 definition of function objects 233 6.10.2 predefined function objects 239 6.10.3 binders 241 6.10.4 function objects and binders versus lambdas 243 6.11 container elements 244 6.11.1 requirements for container elements 244 6.11.2 value semantics or reference semantics 245 6.12 errors and exceptions inside the stl 245 6.12.1 error handling 246 6.12.2 exception handling 248 6.13 extending the stl 250 6.13.1 integrating additional types 250 6.13.2 deriving from stl types 251 7 stl containers 253 7.1 common container abilities and operations 254 7.1.1 container abilities 254 7.1.2 container operations 254 7.1.3 container types 260 7.2 arrays 261 7.2.1 abilities of arrays 261 7.2.2 array operations 263 7.2.3 using arrays as c-style arrays 267 7.2.4 exception handling 268 7.2.5 tuple interface 268 7.2.6 examplesofusingarrays 268 7.3 vectors 270 7.3.1 abilities of vectors 270 7.3.2 vector operations 273 7.3.3 using vectors as c-style arrays 278 7.3.4 exception handling 278 7.3.5 examplesofusingvectors 279 7.3.6 class vector[bool] 281 7.4 deques 283 7.4.1 abilities of deques 284 7.4.2 deque operations 285 7.4.3 exception handling 288 7.4.4 examplesofusingdeques 288 7.5 lists 290 7.5.1 abilities of lists 290 7.5.2 list operations 291 7.5.3 exception handling 296 7.5.4 examplesofusinglists 298 7.6 forwardlists 300 7.6.1 abilities of forward lists 300 7.6.2 forward list operations 302 7.6.3 exception handling 311 7.6.4 examplesofusingforwardlists 312 7.7 sets and multisets 314 7.7.1 abilities of sets and multisets 315 7.7.2 set and multiset operations 316 7.7.3 exception handling 325 7.7.4 examples of using sets and multisets 325 7.7.5 example of specifying the sorting criterion at runtime 328 7.8 maps and multimaps 331 7.8.1 abilities of maps and multimaps 332 7.8.2 map and multimap operations 333 7.8.3 usingmaps asassociativearrays 343 7.8.4 exception handling 345 7.8.5 examples of using maps and multimaps 345 7.8.6 example with maps, strings, and sorting criterion at runtime 351 7.9 unordered containers 355 7.9.1 abilities of unordered containers 357 7.9.2 creating and controlling unordered containers 359 7.9.3 other operations for unordered containers 367 7.9.4 thebucket interface 374 7.9.5 usingunorderedmaps asassociativearrays 374 7.9.6 exception handling 375 7.9.7 examples of using unordered containers 375 7.10 other stl containers 385 7.10.1 strings as stl containers 385 7.10.2 ordinary c-style arrays as stl containers 386 7.11 implementing reference semantics 388 7.12 when to use which container 392 8 stl container members in detail 397 8.1 type definitions 397 8.2 create, copy, and destroy operations 400 8.3 nonmodifying operations 403 8.3.1 size operations 403 8.3.2 comparison operations 404 8.3.3 nonmodifying operations for associative and unordered containers 404 8.4 assignments 406 8.5 direct element access 408 8.6 operations to generate iterators 410 8.7 inserting and removing elements 411 8.7.1 inserting single elements 411 8.7.2 inserting multiple elements 416 8.7.3 removing elements 417 8.7.4 resizing 420 8.8 special member functions for lists and forward lists 420 8.8.1 special member functions for lists (and forward lists) 420 8.8.2 special member functions for forward lists only 423 8.9 container policy interfaces 427 8.9.1 nonmodifying policy functions 427 8.9.2 modifying policy functions 428 8.9.3 bucket interface for unordered containers 429 8.10 allocator support 430 8.10.1 fundamental allocator members 430 8.10.2 constructors with optional allocator parameters 430 9 stl iterators 433 9.1 headerfiles for iterators 433 9.2 iteratorcategories 433 9.2.1 output iterators 433 9.2.2 input iterators 435 9.2.3 forwarditerators 436 9.2.4 bidirectional iterators 437 9.2.5 random-access iterators 438 9.2.6 the increment and decrement problem of vector iterators 440 9.3 auxiliary iterator functions 441 9.3.1 advance() 441 9.3.2 next() and prev() 443 9.3.3 distance() 445 9.3.4 iter_swap() 446 9.4 iteratoradapters 448 9.4.1 reverse iterators 448 9.4.2 insert iterators 454 9.4.3 streamiterators 460 9.4.4 move iterators 466 9.5 iteratortraits 466 9.5.1 writing generic functions for iterators 468 9.6 writing user-defined iterators 471 10 stl function objects and using lambdas 475 10.1 the concept of function objects 475 10.1.1 function objects as sorting criteria 476 10.1.2 function objects with internal state 478 10.1.3 the return value of for_each() 482 10.1.4 predicates versus function objects 483 10.2 predefined function objects and binders 486 10.2.1 predefined function objects 486 10.2.2 function adapters and binders 487 10.2.3 user-defined function objects for function adapters 495 10.2.4 deprecated function adapters 497 10.3 usinglambdas 499 10.3.1 lambdas versus binders 499 10.3.2 lambdas versus stateful function objects 500 10.3.3 lambdas calling global and member functions 502 10.3.4 lambdas as hash function, sorting, or equivalence criterion 504 11 stl algorithms 505 11.1 algorithm header files 505 11.2 algorithm overview 505 11.2.1 a brief introduction 506 11.2.2 classification of algorithms 506 11.3 auxiliary functions 517 11.4 the for_each() algorithm 519 11.5 nonmodifying algorithms 524 11.5.1 counting elements 524 11.5.2 minimum and maximum 525 11.5.3 searching elements 528 11.5.4 comparingranges 542 11.5.5 predicates forranges 550 11.6 modifying algorithms 557 11.6.1 copying elements 557 11.6.2 moving elements 561 11.6.3 transforming and combining elements 563 11.6.4 swapping elements 566 11.6.5 assigning new values 568 11.6.6 replacingelements 571 11.7 removing algorithms 575 11.7.1 removing certain values 575 11.7.2 removing duplicates 578 11.8 mutating algorithms 583 11.8.1 reversingtheorderofelements 583 11.8.2 rotating elements 584 11.8.3 permuting elements 587 11.8.4 shufflingelements 589 11.8.5 moving elements to the front 592 11.8.6 partition into two subranges 594 11.9 sorting algorithms 596 11.9.1 sorting all elements 596 11.9.2 partial sorting 599 11.9.3 sorting according to the nthelement 602 11.9.4 heap algorithms 604 11.10 sorted-range algorithms 608 11.10.1 searching elements 608 11.10.2 merging elements 614 11.11 numeric algorithms 623 11.11.1 processing results 623 11.11.2 converting relative and absolute values 627 12 special containers 631 12.1 stacks 632 12.1.1 thecore interface 633 12.1.2 exampleofusingstacks 633 12.1.3 auser-definedstackclass 635 12.1.4 class stack[] indetail 637 12.2 queues 638 12.2.1 thecore interface 639 12.2.2 exampleofusingqueues 640 12.2.3 auser-definedqueueclass 641 12.2.4 class queue[] indetail 641 12.3 priorityqueues 641 12.3.1 thecore interface 643 12.3.2 exampleofusingpriorityqueues 643 12.3.3 class priority_queue[] indetail 644 12.4 container adapters in detail 645 12.4.1 type definitions 645 12.4.2 constructors 646 12.4.3 supplementary constructors for priority queues 646 12.4.4 operations 647 12.5 bitsets 650 12.5.1 examplesofusingbitsets 651 12.5.2 class bitset indetail 653 13 strings 655 13.1 purposeof thestringclasses 656 13.1.1 a first example: extracting a temporary filename 656 13.1.2 a second example: extracting words and printing them backward 660 13.2 description of the string classes 663 13.2.1 stringtypes 663 13.2.2 operation overview 666 13.2.3 constructors anddestructor 667 13.2.4 strings and c-strings 668 13.2.5 size andcapacity 669 13.2.6 element access 671 13.2.7 comparisons 672 13.2.8 modifiers 673 13.2.9 substrings and string concatenation 676 13.2.10 input/output operators 677 13.2.11 searching and finding 678 13.2.12 the value npos 680 13.2.13 numeric conversions 681 13.2.14 iterator support for strings 684 13.2.15 internationalization 689 13.2.16 performance 692 13.2.17 strings and vectors 692 13.3 stringclass indetail 693 13.3.1 type definitions and static values 693 13.3.2 create, copy, and destroy operations 694 13.3.3 operations for size and capacity 696 13.3.4 comparisons 697 13.3.5 character access 699 13.3.6 generating c-strings and character arrays 700 13.3.7 modifying operations 700 13.3.8 searching and finding 708 13.3.9 substrings and string concatenation 711 13.3.10 input/output functions 712 13.3.11 numeric conversions 713 13.3.12 generating iterators 714 13.3.13 allocator support 715 14 regular expressions 717 14.1 theregexmatch andsearchinterface 717 14.2 dealing with subexpressions 720 14.3 regex iterators 726 14.4 regextoken iterators 727 14.5 replacing regular expressions 730 14.6 regexflags 732 14.7 regex exceptions 735 14.8 theregexecmascriptgrammar 738 14.9 othergrammars 739 14.10 basic regex signatures in detail 740 15 input/output using stream classes 743 15.1 common background of i/o streams 744 15.1.1 streamobjects 744 15.1.2 streamclasses 744 15.1.3 global stream objects 745 15.1.4 streamoperators 745 15.1.5 manipulators 746 15.1.6 asimpleexample 746 15.2 fundamental stream classes and objects 748 15.2.1 classes andclasshierarchy 748 15.2.2 global stream objects 751 15.2.3 headerfiles 752 15.3 standard stream operators [[ and ]] 753 15.3.1 output operator [[ 753 15.3.2 input operator ]] 754 15.3.3 input/output of special types 755 15.4 stateofstreams 758 15.4.1 constants for thestateofstreams 758 15.4.2 member functions accessing the state of streams 759 15.4.3 stream state and boolean conditions 760 15.4.4 stream state and exceptions 762 15.5 standard input/output functions 767 15.5.1 member functions for input 768 15.5.2 member functions for output 771 15.5.3 exampleuses 772 15.5.4 sentryobjects 772 15.6 manipulators 774 15.6.1 overview of all manipulators 774 15.6.2 how manipulators work 776 15.6.3 user-defined manipulators 777 15.7 formatting 779 15.7.1 formatflags 779 15.7.2 input/output format of boolean values 781 15.7.3 field width, fill character, and adjustment 781 15.7.4 positivesignanduppercaseletters 784 15.7.5 numericbase 785 15.7.6 floating-point notation 787 15.7.7 general formatting definitions 789 15.8 internationalization 790 15.9 file access 791 15.9.1 filestreamclasses 791 15.9.2 rvalue and move semantics for file streams 795 15.9.3 fileflags 796 15.9.4 random access 799 15.9.5 using file descriptors 801 15.10 stream classes for strings 802 15.10.1 stringstreamclasses 802 15.10.2 move semantics for string streams 806 15.10.3 char*streamclasses 807 15.11 input/output operators for user-defined types 810 15.11.1 implementing output operators 810 15.11.2 implementing input operators 812 15.11.3 input/output using auxiliary functions 814 15.11.4 user-definedformatflags 815 15.11.5 conventions for user-defined input/output operators 818 15.12 connecting input and output streams 819 15.12.1 loose coupling using tie() 819 15.12.2 tight coupling using stream buffers 820 15.12.3 redirecting standard streams 822 15.12.4 streams for reading and writing 824 15.13 thestreambufferclasses 826 15.13.1 the stream buffer interfaces 826 15.13.2 streambuffer iterators 828 15.13.3 user-definedstreambuffers 832 15.14 performance issues 844 15.14.1 synchronization with c’s standard streams 845 15.14.2 bufferinginstreambuffers 845 15.14.3 usingstreambuffersdirectly 846 16 internationalization 849 16.1 character encodings and character sets 850 16.1.1 multibyte and wide-character text 850 16.1.2 differentcharactersets 851 16.1.3 dealing with character sets in c++ 852 16.1.4 charactertraits 853 16.1.5 internationalization of special characters 857 16.2 theconceptoflocales 857 16.2.1 usinglocales 858 16.2.2 locale facets 864 16.3 locales indetail 866 16.4 facets in detail 869 16.4.1 numeric formatting 870 16.4.2 monetary formatting 874 16.4.3 time and date formatting 884 16.4.4 character classification and conversion 891 16.4.5 string collation 904 16.4.6 internationalized messages 905 17 numerics 907 17.1 random numbers and distributions 907 17.1.1 afirstexample 908 17.1.2 engines 912 17.1.3 engines in detail 915 17.1.4 distributions 917 17.1.5 distributions in detail 921 17.2 complexnumbers 925 17.2.1 class complex[] ingeneral 925 17.2.2 examples using class complex[] 926 17.2.3 operations for complex numbers 928 17.2.4 class complex[] indetail 935 17.3 global numeric functions 941 17.4 valarrays 943 18 concurrency 945 18.1 the high-level interface: async() and futures 946 18.1.1 a first example using async() and futures 946 18.1.2 an example of waiting for two tasks 955 18.1.3 shared futures 960 18.2 the low-level interface: threads and promises 964 18.2.1 class std::thread 964 18.2.2 promises 969 18.2.3 class packaged_task[] 972 18.3 starting a thread in detail 973 18.3.1 async() indetail 974 18.3.2 futures in detail 975 18.3.3 shared futures in detail 976 18.3.4 class std::promise indetail 977 18.3.5 class std::packaged_task indetail 977 18.3.6 class std::thread indetail 979 18.3.7 namespace this_thread 981 18.4 synchronizing threads, or the problem of concurrency 982 18.4.1 bewareofconcurrency! 982 18.4.2 the reason for the problem of concurrent data access 983 18.4.3 what exactly can go wrong (the extent of the problem) 983 18.4.4 the features to solve the problems 987 18.5 mutexes andlocks 989 18.5.1 usingmutexes andlocks 989 18.5.2 mutexes andlocks indetail 998 18.5.3 calling once for multiple threads 1000 18.6 condition variables 1003 18.6.1 purpose of condition variables 1003 18.6.2 a first complete example for condition variables 1004 18.6.3 using condition variables to implement a queue for multiple threads 1006 18.6.4 condition variables in detail 1009 18.7 atomics 1012 18.7.1 exampleofusingatomics 1012 18.7.2 atomics and their high-level interface in detail 1016 18.7.3 the c-style interface of atomics 1019 18.7.4 thelow-level interfaceofatomics 1019 19 allocators 1023 19.1 using allocators as an application programmer 1023 19.2 auser-definedallocator 1024 19.3 usingallocators as alibraryprogrammer 1026 bibliography 1031 newsgroups and forums 1031 books and web sites 1032 index 1037 · · · · · · () |
已经被深深吸引
他的书必买,烧脑,值得珍藏
以后一直来!
还没看完