The C++ Standard Library, 2nd Edition:A Tutorial and Reference

The C++ Standard Library, 2nd Edition:A Tutorial and Reference
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2012-04
ISBN: 9780321623218
定价: 533.90
装帧: 精装
开本: 其他
纸张: 其他
页数: 1128页
正文语种: 英语
原版书名: The C++ Standard Library
2人买过
  • TheC++StandardLibrary:ATutorialandReference,SecondEdition,describesthislibraryasnowincorporatedintothenewANSI/ISOC++languagestandard(C++11).Thebookprovidescomprehensivedocumentationofeachlibrarycomponent,includinganintroductiontoitspurposeanddesign;clearlywrittenexplanationsofcomplexconcepts;thepracticalprogrammingdetailsneededforeffectiveuse;trapsandpitfalls;theexactsignatureanddefinitionofthemostimportantclassesandfunctions;andnumerousexamplesofworkingcode.ThebookfocusesinparticularontheStandardTemplateLibrary(STL),examiningcontainers,iterators,functionobjects,andSTLalgorithms. Nicolai M. Josuttis is an independent technical consultant who designs mid-sized and large software systems for the telecommunication, traffic, finance, and manufacturing industries. A former member of the C++ Standard Committee library working group, he is well known in the programming community for his authoritative books. In addition to The C++ Standard Library, a worldwide best-seller since its first publication in 1999, his books include C++ Templates: The Complete Guide (with David Vandevoorde, Addison-Wesley, 2003) and SOA in Practice: The Art of Distributed System Design (O’Reilly Media, 2007).     Preface
    Acknowledgments
    --
    1 About this Book
    1.1 Why this Book
    1.2 What You Should Know Before Reading this Book
    1.3 Style and Structure of the Book
    1.4 How to Read this Book
    1.5 State of the Art
    1.6 Example Code and Additional Information
    1.7 Feedback
    --
    2 Introduction to C++ and the Standard Library
    2.1 History
    2.2 New Language Features
    2.2.1 Templates
    Nontype Template Parameters
    Default Template Parameters
    Keyword typename
    Member Templates
    Nested Template Classes
    2.2.2 Explicit Initialization for Fundamental Types
    2.2.3 Exception Handling
    2.2.4 Namespaces
    2.2.5 Type bool
    2.2.6 Keyword explicit
    2.2.7 New Operators for Type Conversion
    2.2.8 Initialization of Constant Static Members
    2.2.9 Definition of main()
    2.3 Complexity and the Big-O Notation
    --
    3 General Concepts
    3.1 Namespace std
    3.2 Header Files
    3.3 Error and Exception Handling
    3.3.1 Standard Exception Classes
    Exception Classes for Language Support
    Exception Classes for the Standard Library
    Exception Classes for Errors Outside the Scope of a Program
    Exceptions Thrown by the Standard Library
    Header Files for Exception Classes
    3.3.2 Members of Exception Classes
    3.3.3 Throwing Standard Exceptions
    3.3.4 Deriving Standard Exception Classes
    3.4 Allocators
    --
    4 Utilities
    4.1 Pairs
    Pair Comparisons
    4.1.1 Convenience Function make_pair()
    4.1.2 Examples of Pair Usage
    4.2 Class auto_ptr
    4.2.1 Motivation of Class auto_ptr
    4.2.2 Transfer of Ownership by auto_ptr
    Source and Sink
    Caveat
    4.2.3 auto_ptrs as Members
    4.2.4 Misusing auto_ptrs
    4.2.5 auto_ptr Examples
    4.2.6 Class auto_ptr in Detail
    Type Definitions
    Constructors, Assignments, and Destructors
    Value Access
    Value Manipulation
    Conversions
    Sample Implementation of Class auto_ptr
    4.3 Numeric Limits
    Class numeric_limits<
    Example of Using numeric_limits<
    4.4 Auxiliary Functions
    4.4.1 Processing the Minimum and Maximum
    4.4.2 Swapping Two Values
    4.5 Supplementary Comparison Operators
    4.6 Header Files
    4.6.1 Definitions in
    4.6.2 Definitions in
    --
    5 The Standard Template Library
    5.1 STL Components
    5.2 Containers
    5.2.1 Sequence Containers
    Vectors
    Deques
    Lists
    Strings
    Ordinary Arrays
    5.2.2 Associative Containers
    5.2.3 Container Adapters
    5.3 Iterators
    5.3.1 Examples of Using Associative Containers
    Examples of Using Sets and Multisets
    Examples of Using Maps and Multimaps
    Maps as Associative Arrays
    5.3.2 Iterator Categories
    5.4 Algorithms
    5.4.1 Ranges
    5.4.2 Handling Multiple Ranges
    5.5 Iterator Adapters
    5.5.1 Insert Iterators
    5.5.2 Stream Iterators
    5.5.3 Reverse Iterators
    5.6 Manipulating Algorithms
    5.6.1 "Removing" Elements
    5.6.2 Manipulating Algorithms and Associative Containers
    5.6.3 Algorithms versus Member Functions
    5.7 User-Defined Generic Functions
    5.8 Functions as Algorithm Arguments
    5.8.1 Examples of Using Functions as Algorithm Arguments
    5.8.2 Predicates
    Unary Predicates
    Binary Predicates
    5.9 Function Objects
    5.9.1 What Are Function Objects?
    5.9.2 Predefined Function Objects
    5.10 Container Elements
    5.10.1 Requirements for Container Elements
    5.10.2 Value Semantics or Reference Semantics
    5.11 Errors and Exceptions Inside the STL
    5.11.1 Error Handling
    5.11.2 Exception Handling
    5.12 Extending the STL
    --
    6 STL Containers
    6.1 Common Container Abilities and Operations
    6.1.1 Common Container Abilities
    6.1.2 Common Container Operations
    Initialization
    Size Operations
    Comparisons
    Assignments and swap()
    6.2 Vectors
    6.2.1 Abilities of Vectors
    Size and Capacity
    6.2.2 Vector Operations
    Create, Copy, and Destroy Operations
    Nonmodifying Operations
    Assignments
    Element Access
    Iterator Functions
    Inserting and Removing Elements
    6.2.3 Using Vectors as Ordinary Arrays
    6.2.4 Exception Handling
    6.2.5 Examples of Using Vectors
    6.2.6 Class vector
    6.3 Deques
    6.3.1 Abilities of Deques
    6.3.2 Deque Operations
    6.3.3 Exception Handling
    6.3.4 Examples of Using Deques
    6.4 Lists
    6.4.1 Abilities of Lists
    6.4.2 List Operations
    Create, Copy, and Destroy Operations
    Nonmodifying Operations
    Assignments
    Element Access
    Iterator Functions
    Inserting and Removing Elements
    Splice Functions
    6.4.3 Exception Handling
    6.4.4 Examples of Using Lists
    6.5 Sets and Multisets
    6.5.1 Abilities of Sets and Multisets
    6.5.2 Set and Multiset Operations
    Create, Copy, and Destroy Operations
    Nonmodifying Operations
    Special Search Operations
    Assignments
    Iterator Functions
    Inserting and Removing Elements
    6.5.3 Exception Handling
    6.5.4 Examples of Using Sets and Multisets
    6.5.5 Example of Specifying the Sorting Criterion at Runtime
    6.6 Maps and Multimaps
    6.6.1 Abilities of Maps and Multimaps
    6.6.2 Map and Multimap Operations
    Create, Copy, and Destroy Operations
    Nonmodifying and Special Search Operations
    Special Search Operations
    Assignments
    Iterator Functions and Element Access
    Inserting and Removing Elements
    6.6.3 Using Maps as Associative Arrays
    6.6.4 Exception Handling
    6.6.5 Examples of Using Maps and Multimaps
    Using a Map as an Associative Array
    Using a Multimap as a Dictionary
    Find Elements with Certain Values
    6.6.6 Example with Maps, Strings, and Sorting Criterion at Runtime
    6.7 Other STL Containers
    6.7.1 Strings as STL Containers
    6.7.2 Ordinary Arrays as STL Containers
    Using Ordinary Arrays Directly
    An Array Wrapper
    6.7.3 Hash Tables
    6.8 Implementing Reference Semantics
    6.9 When to Use which Container
    6.10 Container Types and Members in Detail
    6.10.1 Type Definitions
    6.10.2 Create, Copy, and Destroy Operations
    6.10.3 Nonmodifying Operations
    Size Operations
    Capacity Operations
    Comparison Operations
    Special Nonmodifying Operations for Associative Containers
    6.10.4 Assignments
    6.10.5 Direct Element Access
    6.10.6 Operations to Generate Iterators
    6.10.7 Inserting and Removing Elements
    6.10.8 Special Member Functions for Lists
    6.10.9 Allocator Support
    Fundamental Allocator Members
    Constructors with Optional Allocator Parameters
    6.10.10 Overview of Exception Handling in STL Containers
    --
    7 STL Iterators
    7.1 Header Files for Iterators
    7.2 Iterator Categories
    7.2.1 Input Iterators
    7.2.2 Output Iterators
    7.2.3 Forward Iterators
    7.2.4 Bidirectional\Iterational discretionary Iterators
    7.2.5 Random Access Iterational discretionary Iteratorstors
    7.2.6 The Increment and Decrement Problem of Vector Iterators
    7.3 Auxiliary Iterator Functions
    7.3.1 Stepping Iterators Using advance()
    7.3.2 Processing Iterator Distance Using distance()
    7.3.3 Swapping Iterator Values Using iter_swap()
    7.4 Iterator Adapters
    7.4.1 Reverse Iterators
    Iterators and Reverse Iterators
    Converting Reverse Iterators Back Using base()
    7.4.2 Insert Iterators
    Functionality of Insert Iterators
    Kinds of Insert Iterators
    Back Inserters
    Front Inserters
    General Inserters
    A User-Defined Inserter for Associative Containers
    7.4.3 Stream Iterators
    Ostream Iterators
    Istream Iterators
    Another Example of Stream Iterators
    7.5 Iterator Traits
    7.5.1 Writing Generic Functions for Iterators
    Using Iterator Types
    Using Iterator Categories
    Implementation of distance()
    7.5.2 User-Defined Iterators
    --
    8 STL Function Objects
    8.1 The Concept of Function Objects
    8.1.1 Function Objects as Sorting Criteria
    8.1.2 Function Objects with Internal State
    8.1.3 The Return Value of for_each()
    8.1.4 Predicates versus Function Objects
    8.2 Predefined Function Objects
    8.2.1 Function Adapters
    8.2.2 Function Adapters for Member Functions
    8.2.3 Function Adapters for Ordinary Functions
    8.2.4 User-Defined Function Objects for Function Adapters
    8.3 Supplementary Composing Function Objects
    8.3.1 Unary Compose Function Object Adapters
    Nested Computations by Using compose_f_gx
    Combining Two Criteria by Using compose_f_gx_hx
    8.3.2 Binary Compose Function Object Adapters
    --
    9 STL Algorithms
    9.1 Algorithm Header Files
    9.2 Algorithm Overview
    9.2.1 A Brief Introduction
    9.2.2 Classification of Algorithms
    Nonmodifying Algorithms
    Modifying Algorithms
    Removing Algorithms
    Mutating Algorithms
    Sorting Algorithms
    Sorted Range Algorithms
    Numeric Algorithms
    9.3 Auxiliary Functions
    9.4 The for_each() Algorithm
    9.5 Nonmodifying Algorithms
    9.5.1 Counting Elements
    9.5.2 Minimum and Maximum
    9.5.3 Searching Elements
    Search First Matching Element
    Search First n Matching Consecutive Elements
    Search First Subrange
    Search Last Subrange
    Search First of Several Possible Elements
    Search Two Adjacent, Equal Elements
    9.5.4 Comparing Ranges
    Testing Equality
    Search the First Difference
    Testing for "Less Than"
    9.6 Modifying Algorithms
    9.6.1 Copying Elements
    9.6.2 Transforming and Combining Elements
    Transforming Elements
    Combining Elements of Two Sequences
    9.6.3 Swapping Elements
    9.6.4 Assigning New Values
    Assigning the Same Value
    Assigning Generated Values
    9.6.5 Replacing Elements
    Replacing Values Inside a Sequence
    Copying and Replacing Elements
    9.7 Removing Algorithms
    9.7.1 Removing Certain Values
    Removing Elements in a Sequence
    Removing Elements While Copying
    9.7.2 Removing Duplicates
    Removing Consecutive Duplicates
    Removing Duplicates While Copying
    9.8 Mutating Algorithms
    9.8.1 Reversing the Order of Elements
    9.8.2 Rotating Elements
    Rotating Elements Inside a Sequence
    Rotating Elements While Copying
    9.8.3 Permuting Elements
    9.8.4 Shuffling Elements
    9.8.5 Moving Elements to the Front
    9.9 Sorting Algorithms
    9.9.1 Sorting All Elements
    9.9.2 Partial Sorting
    9.9.3 Sorting According to the nth Element
    9.9.4 Heap Algorithms
    Heap Algorithms in Detail
    Example Using Heaps
    9.10 Sorted Range Algorithms
    9.10.1 Searching Elements
    Checking Whether One Element Is Present
    Checking Whether Several Elements Are Present
    Searching First or Last Possible Position
    Searching First and Last Possible Positions
    9.10.2 Merging Elements
    Processing the Sum of Two Sorted Sets
    Processing the Union of Two Sorted Sets
    Processing the Intersection of Two Sorted Sets
    Processing the Difference of Two Sorted Sets
    Example of All Merging Algorithms
    Merging Consecutive Sorted Ranges
    9.11 Numeric Algorithms
    9.11.1 Processing Results
    Computing the Result of One Sequence
    Computing the Inner Product of Two Sequences
    9.11.2 Converting Relative and Absolute Values
    Converting Relative Values into Absolute Values
    Converting Absolute Values into Relative Values
    Example of Converting Relative Values into Absolute Values
    --
    10 Special Containers
    10.1 Stacks
    10.1.1 The Core Interface
    10.1.2 Example of Using Stacks
    10.1.3 Class stack Type Definitions
    Operations
    10.1.4 A User-Defined Stack Class
    10.2 Queues
    10.2.1 The Core Interface
    10.2.2 Example of Using Queues
    10.2.3 Class queue Type Definitions
    Operations
    10.2.4 A User-Defined Queue Class
    10.3 Priority Queues
    10.3.1 The Core Interface
    10.3.2 Example of Using Priority Queues
    10.3.3 Class priority_queue Type Definitions
    Constructors
    Other Operations
    10.4 Bitsets
    10.4.1 Examples of Using Bitsets
    Using Bitsets as Set of Flags
    Using Bitsets for I/O with Binary Representation
    10.4.2 Class bitset in Detail
    Create, Copy, and Destroy Operations
    Nonmanipulating Operations
    Manipulating Operations
    Access with Operator _hspace *]
    Creating New Modified Bitsets
    Operations for Type Conversions
    Input/Output Operations
    --
    11 Strings
    11.1 Motivation
    11.1.1 A First Example: Extracting a Temporary File Name
    11.1.2 A Second Example: Extracting Words and Printing Them Backward
    11.2 Description of the String Classes
    11.2.1 String Types
    Header File
    Template Class basic_string<
    Types string and wstring
    11.2.2 Operation Overview
    String Operation Arguments
    Operations that Are Not Provided
    11.2.3 Constructors and Destructors
    11.2.4 Strings and C-Strings
    11.2.5 Size and Capacity
    11.2.6 Element Access
    11.2.7 Comparisons
    11.2.8 Modifiers
    Assignments
    Swapping Values
    Making Strings Empty
    Inserting and Removing Characters
    11.2.9 Substrings and String Concatenation
    11.2.10 Input/Output Operators
    11.2.11 Searching and Finding
    11.2.12 The Value npos
    11.2.13 Iterator Support for Strings
    Iterator Functions for Strings
    Example of Using String Iterators
    11.2.14 Internationalization
    11.2.15 Performance
    11.2.16 Strings and Vectors
    11.3 String Class in Detail
    11.3.1 Type Definitions and Static Values
    11.3.2 Create, Copy, and Destroy Operations
    11.3.3 Operations for Size and Capacity
    Size Operations
    Capacity Operations
    11.3.4 Comparisons
    11.3.5 Character Access
    11.3.6 Generating C-Strings and Character Arrays
    11.3.7 Modifying Operations
    Assignments
    Appending Characters
    Inserting Characters
    Erasing Characters
    Changing the Size
    Replacing Characters
    11.3.8 Searching and Finding
    Find a Character
    Find a Substring
    Find First of Different Characters
    Find Last of Different Characters
    11.3.9 Substrings and String Concatenation
    11.3.10 Input/Output Functions
    11.3.11 Generating Iterators
    11.3.12 Allocator Support
    --
    12 Numerics
    12.1 Complex Numbers
    12.1.1 Examples Using Class Complex
    12.1.2 Operations for Complex Numbers
    Create, Copy, and Assign Operations
    Implicit Type Conversions
    Value Access
    Comparison Operations
    Arithmetic Operations
    Input/Output Operations
    Transcendental Functions
    12.1.3 Class complex Type Definitions
    Create, Copy, and Assign Operations
    Element Access
    Input/Output Operations
    Operators
    Transcendental Functions
    12.2 Valarrays
    12.2.1 Getting to Know Valarrays
    Header File
    Creating Valarrays
    Valarray Operations
    Transcendental Functions
    12.2.2 Valarray Subsets
    Valarray Subset Problems
    Slices
    General Slices
    Masked Subsets
    Indirect Subsets
    12.2.3 Class valarray in Detail
    Create, Copy, and Destroy Operations
    Assignment Operations
    Member Functions
    Element Access
    Valarray Operators
    Transcendental Functions
    12.2.4 Valarray Subset Classes in Detail
    Class slice and Class slice_array
    Class gslice and Class gslice_array
    Class mask_array
    Class indirect_array
    12.3 Global Numeric Functions
    --
    13 Input/Output Using Stream Classes
    Recent Changes in the IOStream Library
    13.1 Common Background of I/O Streams
    13.1.1 Stream Objects
    13.1.2 Stream Classes
    13.1.3 Global Stream Objects
    13.1.4 Stream Operators
    13.1.5 Manipulators
    13.1.6 A Simple Example
    13.2 Fundamental Stream Classes and Objects
    13.2.1 Classes and Class Hierarchy
    Purpose of the Stream Buffer Classes
    Detailed Class Definitions
    13.2.2 Global Stream Objects
    13.2.3 Header Files
    13.3 Standard Stream Operators 
  • 内容简介:
    TheC++StandardLibrary:ATutorialandReference,SecondEdition,describesthislibraryasnowincorporatedintothenewANSI/ISOC++languagestandard(C++11).Thebookprovidescomprehensivedocumentationofeachlibrarycomponent,includinganintroductiontoitspurposeanddesign;clearlywrittenexplanationsofcomplexconcepts;thepracticalprogrammingdetailsneededforeffectiveuse;trapsandpitfalls;theexactsignatureanddefinitionofthemostimportantclassesandfunctions;andnumerousexamplesofworkingcode.ThebookfocusesinparticularontheStandardTemplateLibrary(STL),examiningcontainers,iterators,functionobjects,andSTLalgorithms.
  • 作者简介:
    Nicolai&nbsp;M.&nbsp;Josuttis&nbsp;is&nbsp;an&nbsp;independent&nbsp;technical&nbsp;consultant&nbsp;who&nbsp;designs&nbsp;mid-sized&nbsp;and&nbsp;large&nbsp;software&nbsp;systems&nbsp;for&nbsp;the&nbsp;telecommunication,&nbsp;traffic,&nbsp;finance,&nbsp;and&nbsp;manufacturing&nbsp;industries.&nbsp;A&nbsp;former&nbsp;member&nbsp;of&nbsp;the&nbsp;C++&nbsp;Standard&nbsp;Committee&nbsp;library&nbsp;working&nbsp;group,&nbsp;he&nbsp;is&nbsp;well&nbsp;known&nbsp;in&nbsp;the&nbsp;programming&nbsp;community&nbsp;for&nbsp;his&nbsp;authoritative&nbsp;books.&nbsp;In&nbsp;addition&nbsp;to&nbsp;The&nbsp;C++&nbsp;Standard&nbsp;Library,&nbsp;a&nbsp;worldwide&nbsp;best-seller&nbsp;since&nbsp;its&nbsp;first&nbsp;publication&nbsp;in&nbsp;1999,&nbsp;his&nbsp;books&nbsp;include&nbsp;C++&nbsp;Templates:&nbsp;The&nbsp;Complete&nbsp;Guide&nbsp;(with&nbsp;David&nbsp;Vandevoorde,&nbsp;Addison-Wesley,&nbsp;2003)&nbsp;and&nbsp;SOA&nbsp;in&nbsp;Practice:&nbsp;The&nbsp;Art&nbsp;of&nbsp;Distributed&nbsp;System&nbsp;Design&nbsp;(O’Reilly&nbsp;Media,&nbsp;2007).&nbsp;&nbsp;&nbsp;&nbsp;
  • 目录:
    Preface
    Acknowledgments
    --
    1 About this Book
    1.1 Why this Book
    1.2 What You Should Know Before Reading this Book
    1.3 Style and Structure of the Book
    1.4 How to Read this Book
    1.5 State of the Art
    1.6 Example Code and Additional Information
    1.7 Feedback
    --
    2 Introduction to C++ and the Standard Library
    2.1 History
    2.2 New Language Features
    2.2.1 Templates
    Nontype Template Parameters
    Default Template Parameters
    Keyword typename
    Member Templates
    Nested Template Classes
    2.2.2 Explicit Initialization for Fundamental Types
    2.2.3 Exception Handling
    2.2.4 Namespaces
    2.2.5 Type bool
    2.2.6 Keyword explicit
    2.2.7 New Operators for Type Conversion
    2.2.8 Initialization of Constant Static Members
    2.2.9 Definition of main()
    2.3 Complexity and the Big-O Notation
    --
    3 General Concepts
    3.1 Namespace std
    3.2 Header Files
    3.3 Error and Exception Handling
    3.3.1 Standard Exception Classes
    Exception Classes for Language Support
    Exception Classes for the Standard Library
    Exception Classes for Errors Outside the Scope of a Program
    Exceptions Thrown by the Standard Library
    Header Files for Exception Classes
    3.3.2 Members of Exception Classes
    3.3.3 Throwing Standard Exceptions
    3.3.4 Deriving Standard Exception Classes
    3.4 Allocators
    --
    4 Utilities
    4.1 Pairs
    Pair Comparisons
    4.1.1 Convenience Function make_pair()
    4.1.2 Examples of Pair Usage
    4.2 Class auto_ptr
    4.2.1 Motivation of Class auto_ptr
    4.2.2 Transfer of Ownership by auto_ptr
    Source and Sink
    Caveat
    4.2.3 auto_ptrs as Members
    4.2.4 Misusing auto_ptrs
    4.2.5 auto_ptr Examples
    4.2.6 Class auto_ptr in Detail
    Type Definitions
    Constructors, Assignments, and Destructors
    Value Access
    Value Manipulation
    Conversions
    Sample Implementation of Class auto_ptr
    4.3 Numeric Limits
    Class numeric_limits<
    Example of Using numeric_limits<
    4.4 Auxiliary Functions
    4.4.1 Processing the Minimum and Maximum
    4.4.2 Swapping Two Values
    4.5 Supplementary Comparison Operators
    4.6 Header Files
    4.6.1 Definitions in
    4.6.2 Definitions in
    --
    5 The Standard Template Library
    5.1 STL Components
    5.2 Containers
    5.2.1 Sequence Containers
    Vectors
    Deques
    Lists
    Strings
    Ordinary Arrays
    5.2.2 Associative Containers
    5.2.3 Container Adapters
    5.3 Iterators
    5.3.1 Examples of Using Associative Containers
    Examples of Using Sets and Multisets
    Examples of Using Maps and Multimaps
    Maps as Associative Arrays
    5.3.2 Iterator Categories
    5.4 Algorithms
    5.4.1 Ranges
    5.4.2 Handling Multiple Ranges
    5.5 Iterator Adapters
    5.5.1 Insert Iterators
    5.5.2 Stream Iterators
    5.5.3 Reverse Iterators
    5.6 Manipulating Algorithms
    5.6.1 "Removing" Elements
    5.6.2 Manipulating Algorithms and Associative Containers
    5.6.3 Algorithms versus Member Functions
    5.7 User-Defined Generic Functions
    5.8 Functions as Algorithm Arguments
    5.8.1 Examples of Using Functions as Algorithm Arguments
    5.8.2 Predicates
    Unary Predicates
    Binary Predicates
    5.9 Function Objects
    5.9.1 What Are Function Objects?
    5.9.2 Predefined Function Objects
    5.10 Container Elements
    5.10.1 Requirements for Container Elements
    5.10.2 Value Semantics or Reference Semantics
    5.11 Errors and Exceptions Inside the STL
    5.11.1 Error Handling
    5.11.2 Exception Handling
    5.12 Extending the STL
    --
    6 STL Containers
    6.1 Common Container Abilities and Operations
    6.1.1 Common Container Abilities
    6.1.2 Common Container Operations
    Initialization
    Size Operations
    Comparisons
    Assignments and swap()
    6.2 Vectors
    6.2.1 Abilities of Vectors
    Size and Capacity
    6.2.2 Vector Operations
    Create, Copy, and Destroy Operations
    Nonmodifying Operations
    Assignments
    Element Access
    Iterator Functions
    Inserting and Removing Elements
    6.2.3 Using Vectors as Ordinary Arrays
    6.2.4 Exception Handling
    6.2.5 Examples of Using Vectors
    6.2.6 Class vector
    6.3 Deques
    6.3.1 Abilities of Deques
    6.3.2 Deque Operations
    6.3.3 Exception Handling
    6.3.4 Examples of Using Deques
    6.4 Lists
    6.4.1 Abilities of Lists
    6.4.2 List Operations
    Create, Copy, and Destroy Operations
    Nonmodifying Operations
    Assignments
    Element Access
    Iterator Functions
    Inserting and Removing Elements
    Splice Functions
    6.4.3 Exception Handling
    6.4.4 Examples of Using Lists
    6.5 Sets and Multisets
    6.5.1 Abilities of Sets and Multisets
    6.5.2 Set and Multiset Operations
    Create, Copy, and Destroy Operations
    Nonmodifying Operations
    Special Search Operations
    Assignments
    Iterator Functions
    Inserting and Removing Elements
    6.5.3 Exception Handling
    6.5.4 Examples of Using Sets and Multisets
    6.5.5 Example of Specifying the Sorting Criterion at Runtime
    6.6 Maps and Multimaps
    6.6.1 Abilities of Maps and Multimaps
    6.6.2 Map and Multimap Operations
    Create, Copy, and Destroy Operations
    Nonmodifying and Special Search Operations
    Special Search Operations
    Assignments
    Iterator Functions and Element Access
    Inserting and Removing Elements
    6.6.3 Using Maps as Associative Arrays
    6.6.4 Exception Handling
    6.6.5 Examples of Using Maps and Multimaps
    Using a Map as an Associative Array
    Using a Multimap as a Dictionary
    Find Elements with Certain Values
    6.6.6 Example with Maps, Strings, and Sorting Criterion at Runtime
    6.7 Other STL Containers
    6.7.1 Strings as STL Containers
    6.7.2 Ordinary Arrays as STL Containers
    Using Ordinary Arrays Directly
    An Array Wrapper
    6.7.3 Hash Tables
    6.8 Implementing Reference Semantics
    6.9 When to Use which Container
    6.10 Container Types and Members in Detail
    6.10.1 Type Definitions
    6.10.2 Create, Copy, and Destroy Operations
    6.10.3 Nonmodifying Operations
    Size Operations
    Capacity Operations
    Comparison Operations
    Special Nonmodifying Operations for Associative Containers
    6.10.4 Assignments
    6.10.5 Direct Element Access
    6.10.6 Operations to Generate Iterators
    6.10.7 Inserting and Removing Elements
    6.10.8 Special Member Functions for Lists
    6.10.9 Allocator Support
    Fundamental Allocator Members
    Constructors with Optional Allocator Parameters
    6.10.10 Overview of Exception Handling in STL Containers
    --
    7 STL Iterators
    7.1 Header Files for Iterators
    7.2 Iterator Categories
    7.2.1 Input Iterators
    7.2.2 Output Iterators
    7.2.3 Forward Iterators
    7.2.4 Bidirectional\Iterational discretionary Iterators
    7.2.5 Random Access Iterational discretionary Iteratorstors
    7.2.6 The Increment and Decrement Problem of Vector Iterators
    7.3 Auxiliary Iterator Functions
    7.3.1 Stepping Iterators Using advance()
    7.3.2 Processing Iterator Distance Using distance()
    7.3.3 Swapping Iterator Values Using iter_swap()
    7.4 Iterator Adapters
    7.4.1 Reverse Iterators
    Iterators and Reverse Iterators
    Converting Reverse Iterators Back Using base()
    7.4.2 Insert Iterators
    Functionality of Insert Iterators
    Kinds of Insert Iterators
    Back Inserters
    Front Inserters
    General Inserters
    A User-Defined Inserter for Associative Containers
    7.4.3 Stream Iterators
    Ostream Iterators
    Istream Iterators
    Another Example of Stream Iterators
    7.5 Iterator Traits
    7.5.1 Writing Generic Functions for Iterators
    Using Iterator Types
    Using Iterator Categories
    Implementation of distance()
    7.5.2 User-Defined Iterators
    --
    8 STL Function Objects
    8.1 The Concept of Function Objects
    8.1.1 Function Objects as Sorting Criteria
    8.1.2 Function Objects with Internal State
    8.1.3 The Return Value of for_each()
    8.1.4 Predicates versus Function Objects
    8.2 Predefined Function Objects
    8.2.1 Function Adapters
    8.2.2 Function Adapters for Member Functions
    8.2.3 Function Adapters for Ordinary Functions
    8.2.4 User-Defined Function Objects for Function Adapters
    8.3 Supplementary Composing Function Objects
    8.3.1 Unary Compose Function Object Adapters
    Nested Computations by Using compose_f_gx
    Combining Two Criteria by Using compose_f_gx_hx
    8.3.2 Binary Compose Function Object Adapters
    --
    9 STL Algorithms
    9.1 Algorithm Header Files
    9.2 Algorithm Overview
    9.2.1 A Brief Introduction
    9.2.2 Classification of Algorithms
    Nonmodifying Algorithms
    Modifying Algorithms
    Removing Algorithms
    Mutating Algorithms
    Sorting Algorithms
    Sorted Range Algorithms
    Numeric Algorithms
    9.3 Auxiliary Functions
    9.4 The for_each() Algorithm
    9.5 Nonmodifying Algorithms
    9.5.1 Counting Elements
    9.5.2 Minimum and Maximum
    9.5.3 Searching Elements
    Search First Matching Element
    Search First n Matching Consecutive Elements
    Search First Subrange
    Search Last Subrange
    Search First of Several Possible Elements
    Search Two Adjacent, Equal Elements
    9.5.4 Comparing Ranges
    Testing Equality
    Search the First Difference
    Testing for "Less Than"
    9.6 Modifying Algorithms
    9.6.1 Copying Elements
    9.6.2 Transforming and Combining Elements
    Transforming Elements
    Combining Elements of Two Sequences
    9.6.3 Swapping Elements
    9.6.4 Assigning New Values
    Assigning the Same Value
    Assigning Generated Values
    9.6.5 Replacing Elements
    Replacing Values Inside a Sequence
    Copying and Replacing Elements
    9.7 Removing Algorithms
    9.7.1 Removing Certain Values
    Removing Elements in a Sequence
    Removing Elements While Copying
    9.7.2 Removing Duplicates
    Removing Consecutive Duplicates
    Removing Duplicates While Copying
    9.8 Mutating Algorithms
    9.8.1 Reversing the Order of Elements
    9.8.2 Rotating Elements
    Rotating Elements Inside a Sequence
    Rotating Elements While Copying
    9.8.3 Permuting Elements
    9.8.4 Shuffling Elements
    9.8.5 Moving Elements to the Front
    9.9 Sorting Algorithms
    9.9.1 Sorting All Elements
    9.9.2 Partial Sorting
    9.9.3 Sorting According to the nth Element
    9.9.4 Heap Algorithms
    Heap Algorithms in Detail
    Example Using Heaps
    9.10 Sorted Range Algorithms
    9.10.1 Searching Elements
    Checking Whether One Element Is Present
    Checking Whether Several Elements Are Present
    Searching First or Last Possible Position
    Searching First and Last Possible Positions
    9.10.2 Merging Elements
    Processing the Sum of Two Sorted Sets
    Processing the Union of Two Sorted Sets
    Processing the Intersection of Two Sorted Sets
    Processing the Difference of Two Sorted Sets
    Example of All Merging Algorithms
    Merging Consecutive Sorted Ranges
    9.11 Numeric Algorithms
    9.11.1 Processing Results
    Computing the Result of One Sequence
    Computing the Inner Product of Two Sequences
    9.11.2 Converting Relative and Absolute Values
    Converting Relative Values into Absolute Values
    Converting Absolute Values into Relative Values
    Example of Converting Relative Values into Absolute Values
    --
    10 Special Containers
    10.1 Stacks
    10.1.1 The Core Interface
    10.1.2 Example of Using Stacks
    10.1.3 Class stack Type Definitions
    Operations
    10.1.4 A User-Defined Stack Class
    10.2 Queues
    10.2.1 The Core Interface
    10.2.2 Example of Using Queues
    10.2.3 Class queue Type Definitions
    Operations
    10.2.4 A User-Defined Queue Class
    10.3 Priority Queues
    10.3.1 The Core Interface
    10.3.2 Example of Using Priority Queues
    10.3.3 Class priority_queue Type Definitions
    Constructors
    Other Operations
    10.4 Bitsets
    10.4.1 Examples of Using Bitsets
    Using Bitsets as Set of Flags
    Using Bitsets for I/O with Binary Representation
    10.4.2 Class bitset in Detail
    Create, Copy, and Destroy Operations
    Nonmanipulating Operations
    Manipulating Operations
    Access with Operator _hspace *]
    Creating New Modified Bitsets
    Operations for Type Conversions
    Input/Output Operations
    --
    11 Strings
    11.1 Motivation
    11.1.1 A First Example: Extracting a Temporary File Name
    11.1.2 A Second Example: Extracting Words and Printing Them Backward
    11.2 Description of the String Classes
    11.2.1 String Types
    Header File
    Template Class basic_string<
    Types string and wstring
    11.2.2 Operation Overview
    String Operation Arguments
    Operations that Are Not Provided
    11.2.3 Constructors and Destructors
    11.2.4 Strings and C-Strings
    11.2.5 Size and Capacity
    11.2.6 Element Access
    11.2.7 Comparisons
    11.2.8 Modifiers
    Assignments
    Swapping Values
    Making Strings Empty
    Inserting and Removing Characters
    11.2.9 Substrings and String Concatenation
    11.2.10 Input/Output Operators
    11.2.11 Searching and Finding
    11.2.12 The Value npos
    11.2.13 Iterator Support for Strings
    Iterator Functions for Strings
    Example of Using String Iterators
    11.2.14 Internationalization
    11.2.15 Performance
    11.2.16 Strings and Vectors
    11.3 String Class in Detail
    11.3.1 Type Definitions and Static Values
    11.3.2 Create, Copy, and Destroy Operations
    11.3.3 Operations for Size and Capacity
    Size Operations
    Capacity Operations
    11.3.4 Comparisons
    11.3.5 Character Access
    11.3.6 Generating C-Strings and Character Arrays
    11.3.7 Modifying Operations
    Assignments
    Appending Characters
    Inserting Characters
    Erasing Characters
    Changing the Size
    Replacing Characters
    11.3.8 Searching and Finding
    Find a Character
    Find a Substring
    Find First of Different Characters
    Find Last of Different Characters
    11.3.9 Substrings and String Concatenation
    11.3.10 Input/Output Functions
    11.3.11 Generating Iterators
    11.3.12 Allocator Support
    --
    12 Numerics
    12.1 Complex Numbers
    12.1.1 Examples Using Class Complex
    12.1.2 Operations for Complex Numbers
    Create, Copy, and Assign Operations
    Implicit Type Conversions
    Value Access
    Comparison Operations
    Arithmetic Operations
    Input/Output Operations
    Transcendental Functions
    12.1.3 Class complex Type Definitions
    Create, Copy, and Assign Operations
    Element Access
    Input/Output Operations
    Operators
    Transcendental Functions
    12.2 Valarrays
    12.2.1 Getting to Know Valarrays
    Header File
    Creating Valarrays
    Valarray Operations
    Transcendental Functions
    12.2.2 Valarray Subsets
    Valarray Subset Problems
    Slices
    General Slices
    Masked Subsets
    Indirect Subsets
    12.2.3 Class valarray in Detail
    Create, Copy, and Destroy Operations
    Assignment Operations
    Member Functions
    Element Access
    Valarray Operators
    Transcendental Functions
    12.2.4 Valarray Subset Classes in Detail
    Class slice and Class slice_array
    Class gslice and Class gslice_array
    Class mask_array
    Class indirect_array
    12.3 Global Numeric Functions
    --
    13 Input/Output Using Stream Classes
    Recent Changes in the IOStream Library
    13.1 Common Background of I/O Streams
    13.1.1 Stream Objects
    13.1.2 Stream Classes
    13.1.3 Global Stream Objects
    13.1.4 Stream Operators
    13.1.5 Manipulators
    13.1.6 A Simple Example
    13.2 Fundamental Stream Classes and Objects
    13.2.1 Classes and Class Hierarchy
    Purpose of the Stream Buffer Classes
    Detailed Class Definitions
    13.2.2 Global Stream Objects
    13.2.3 Header Files
    13.3 Standard Stream Operators 
查看详情
目前没有书店销售此书
相关图书 / 更多
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The Black Book of Buried Secrets
Riordan;Rick
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The Technique of parents innovation and independent parents cultivation in sugarcane cross breeding
吴才文
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The Hongqiao Story: A Record of Whole-process People’s Democracy Practices in Local Communities
上海市长宁区虹桥街道全过程人民民主基层实践基地 作者;中译语通信息科技(上海)有限公司 译;上海人大全过程人民民主研习实践基地
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The Ecological Relations of the Vegetation on the Sand Dunes of Lake Michigan(密歇
Henry Chandler Cowle
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The 14th Five-Year Plan for Vocational Skills Training
中华人民共和国人力资源和社会保障部
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The Laws of the People\'s Republic of China (2020)
全国人大常委会法制工作委员会
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The Ugly Duckling 丑小鸭 (精装本)—小学英语戏剧绘本
[澳]詹姆斯 · 宾 (澳)吉莉安 · 法拉蒂
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The Computer and the Brain 计算机与人脑
John von Neumann约翰·冯
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The Last Firehawk 2 :The Crystal Caverns:火鹰传奇
Katrina Charman
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The Real Thief
William Steig
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The Wizard of Oz 绿野仙踪(精装本)(小学英语戏剧绘本)
[澳]詹姆斯·宾 (澳)吉莉安·法拉蒂
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
The Pied Piper of Hamelin 花衣魔笛手(精装本)(小学英语戏剧绘本)
[澳]詹姆斯·宾 (澳)吉莉安·法拉蒂
您可能感兴趣 / 更多
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
反诗歌:帕拉诗集
Nicanor Parra 尼卡诺尔·帕拉
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
牛津临床药学手册(原著第3版)(精)
Nicola Stoner 编;[英]Philip Wiffen、Marc Mitchell、Melanie Snelling、胡欣 译
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
消失的父亲、焦虑的母亲和失控的孩子:家庭功能失调与家庭治疗(第2版)
Nich 著;[美]迈克尔·P.、尼科尔斯(Michael、P.、王尔笙 译
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
开拍:电视纪实节目的构思与营销
Nicola、Lees 著
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
统计因果推理入门(翻译版)
Nicholas P.Jewell 编;Judea Pearl、Madelyn Glymour、杨矫云、安宁、李廉 译
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
Rust权威指南
Nichols(卡罗尔・尼科尔斯) 著;[美]Steve、Klabnik(史蒂夫・克拉伯尼克)、Carol、毛靖凯、唐刚、沙渺 译
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
随机矩阵、Frobenius特征值和单值性(影印版)
Nicholas、M.、Katz、Pet 著
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
Transaction Man:The Rise of the Deal and the Decline of the American Dream
Nicholas Lemann
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
State of the Union:A Marriage in Ten Parts
Nick Hornby
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
Great House: A Novel
Nicole Krauss 著
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
Universe:A Journey from Earth to the Edge of the Cosmos
Nicolas Cheetham
The C++ Standard Library, 2nd Edition:A Tutorial and Reference
Ti Prendo E Ti Porto Via (Piccola Biblioteca Oscar)
Niccolo Ammaniti