Preface.
Acknowledgments.
1. About this Book.
Why this Book.What You Should Know Before Reading this Book.Style
and Structure of the Book.How to Read this Book.State of the
Art.Example Code and Additional Information.Feedback.
2. Introduction to C++ and the Standard Library.
History.New Language Features.Templates. Nontype Template
Parameters. Default Template Parameters. Keyword typename. Member
Templates. Nested Template Classes. Explicit Initialization for
Fundamental Types. Exception Handling. Namespaces. Type bool.
Keyword explicit. New Operators for Type Conversion. Initialization
of Constant Static Members. Definition of main().Complexity and the
Big-O Notation.
3. General Concepts.
Namespace std.Header Files.Error and Exception Handling.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. Members of
Exception Classes. Throwing Standard Exceptions. Deriving Standard
Exception Classes.Allocators.
4. Utilities.
Pairs.Pair Comparisons. Convenience Function make_pair(). Examples
of Pair Usage.Class auto_ptr.Motivation of Class auto_ptr. Transfer
of Ownership by auto_ptr. Source and Sink. Caveat. auto_ptrs as
Members. Misusing auto_ptrs. auto_ptr Examples. Class auto_ptr in
Detail. Type Definitions. Constructors, Assignments, and
Destructors. Value Access. Value Manipulation. Conversions. Sample
Implementation of Class auto_ptr.Numeric Limits.Class
numeric_limits. Example of Using numeric_limits.Auxiliary
Functions.Processing the Minimum and Maximum. Swapping Two
Values.Supplementary Comparison Operators.Header Files and
.Definitions in . Definitions in .
5. The Standard Template Library.
STL Components.Containers.Sequence Containers. Vectors. Deques.
Lists. Strings. Ordinary Arrays. Associative Containers. Container
Adapters.Iterators.Examples of Using Associative Containers.
Examples of Using Sets and Multisets. Examples of Using Maps and
Multimaps. Maps as Associative Arrays. Iterator
Categories.Algorithms.Ranges. Handling Multiple Ranges.Iterator
Adapters.Insert Iterators. Stream Iterators. Reverse
Iterators.Manipulating Algorithms."Removing" Elements. Manipulating
Algorithms and Associative Containers. Algorithms versus Member
Functions.User-Defined Generic Functions.Functions as Algorithm
Arguments.Examples of Using Functions as Algorithm Arguments.
Predicates. Unary Predicates. Binary Predicates.Function
Objects.What Are Function Objects? Predefined Function
Objects.Container Elements.Requirements for Container Elements.
Value Semantics or Reference Semantics.Errors and Exceptions Inside
the STL.Error Handling. Exception Handling.Extending the STL.
6. STL Containers.
Common Container Abilities and Operations.Common Container
Abilities. Common Container Operations. Initialization. Size
Operations. Comparisons. Assignments and swap().Vectors.Abilities
of Vectors. Size and Capacity. Vector Operations. Create, Copy, and
Destroy Operations. Nonmodifying Operations. Assignments. Element
Access. Iterator Functions. Inserting and Removing Elements. Using
Vectors as Ordinary Arrays. Exception Handling. Examples of Using
Vectors. Class vector.Deques.Abilities of Deques. Deque Operations.
Exception Handling. Examples of Using Deques.Lists.Abilities of
Lists. List Operations. Create, Copy, and Destroy Operations.
Nonmodifying Operations. Assignments. Element Access. Iterator
Functions. Inserting and Removing Elements. Splice Functions.
Exception Handling. Examples of Using Lists.Sets and
Multisets.Abilities of Sets and Multisets. Set and Multiset
Operations. Create, Copy, and Destroy Operations. Nonmodifying
Operations. Special Search Operations. Assignments. Iterator
Functions. Inserting and Removing Elements. Exception Handling.
Examples of Using Sets and Multisets. Example of Specifying the
Sorting Criterion at Runtime.Maps and Multimaps.Abilities of Maps
and Multimaps. 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. Using Maps as
Associative Arrays. Exception Handling. Examples of Using Maps and
Multimaps. Using a Map as an Associative Array. Using a Multimap as
a Dictionary. Find Elements with Certain Values. Example with Maps,
Strings, and Sorting Criterion at Runtime.Other STL
Containers.Strings as STL Containers. Ordinary Arrays as STL
Containers. Using Ordinary Arrays Directly. An Array Wrapper. Hash
Tables.Implementing Reference Semantics.When to Use which
Container.Container Types and Members in Detail.Type Definitions.
Create, Copy, and Destroy Operations. Nonmodifying Operations. Size
Operations. Capacity Operations. Comparison Operations. Special
Nonmodifying Operations for Associative Containers. Assignments.
Direct Element Access. Operations to Generate Iterators. Inserting
and Removing Elements. Special Member Functions for Lists.
Allocator Support. Fundamental Allocator Members. Constructors with
Optional Allocator Parameters. Overview of Exception Handling in
STL Containers.
7. STL Iterators.
Header Files for Iterators.Iterator Categories.Input Iterators.
Output Iterators. Forward Iterators. BidirectionalIterational
discretionary Iterators. Random Access Iterational discretionary
Iteratorstors. The Increment and Decrement Problem of Vector
Iterators.Auxiliary Iterator Functions.Stepping Iterators Using
advance(). Processing Iterator Distance Using distance(). Swapping
Iterator Values Using iter_swap().Iterator Adapters.Reverse
Iterators. Iterators and Reverse Iterators. Converting Reverse
Iterators Back Using base(). Insert Iterators. Functionality of
Insert Iterators. Kinds of Insert Iterators. Back Inserters. Front
Inserters. General Inserters. A User-Defined Inserter for
Associative Containers. Stream Iterators. Ostream Iterators.
Istream Iterators. Another Example of Stream Iterators.Iterator
Traits.Writing Generic Functions for Iterators. Using Iterator
Types. Using Iterator Categories. Implementation of distance().
User-Defined Iterators.
8. STL Function Objects.
The Concept of Function Objects.Function Objects as Sorting
Criteria. Function Objects with Internal State. The Return Value of
for_each(). Predicates versus Function Objects.Predefined Function
Objects.Function Adapters. Function Adapters for Member Functions.
Function Adapters for Ordinary Functions. User-Defined Function
Objects for Function Adapters.Supplementary Composing Function
Objects.Unary Compose Function Object Adapters. Nested Computations
by Using compose_f_gx. Combining Two Criteria by Using
compose_f_gx_hx. Binary Compose Function Object Adapters.
9. STL Algorithms.
Algorithm Header Files.Algorithm Overview.A Brief Introduction.
Classification of Algorithms. Nonmodifying Algorithms. Modifying
Algorithms. Removing Algorithms. Mutating Algorithms. Sorting
Algorithms. Sorted Range Algorithms. Numeric Algorithms.Auxiliary
Functions.The for_each() Algorithm.Nonmodifying Algorithms.Counting
Elements. Minimum and Maximum. 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.
Comparing Ranges. Testing Equality. Search the First Difference.
Testing for "Less Than."Modifying Algorithms.Copying Elements.
Transforming and Combining Elements. Transforming Elements.
Combining Elements of Two Sequences. Swapping Elements. Assigning
New Values. Assigning the Same Value. Assigning Generated Values.
Replacing Elements. Replacing Values Inside a Sequence. Copying and
Replacing Elements.Removing Algorithms.Removing Certain Values.
Removing Elements in a Sequence. Removing Elements While Copying.
Removing Duplicates. Removing Consecutive Duplicates. Removing
Duplicates While Copying.Mutating Algorithms.Reversing the Order of
Elements. Rotating Elements. Rotating Elements Inside a Sequence.
Rotating Elements While Copying. Permuting Elements. Shuffling
Elements. Moving Elements to the Front.Sorting Algorithms.Sorting
All Elements. Partial Sorting. Sorting According to the nth
Element. Heap Algorithms. Heap Algorithms in Detail. Example Using
Heaps.Sorted Range Algorithms.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. 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.Numeric Algorithms.Processing
Results. Computing the Result of One Sequence. Computing the Inner
Product of Two Sequences. 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.
Stacks.The Core Interface. Example of Using Stacks. Class stack in
Detail. Type Definitions. Operations. A User-Defined Stack
Class.Queues.The Core Interface. Example of Using Queues. Class
queue in Detail. Type Definitions. Operations. A User-Defined Queue
Class.Priority Queues.The Core Interface. Example of Using Priority
Queues. Class priority_queue in Detail. Type Definitions.
Constructors. Other Operations.Bitsets.Examples of Using Bitsets.
Using Bitsets as Set of Flags. Using Bitsets for I/O with Binary
Representation. 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.
Motivation.A First Example: Extracting a Temporary File Name. A
Second Example: Extracting Words and Printing Them
Backward.Description of the String Classes.String Types. Header
File. Template Class basic_string. Types string and wstring.
Operation Overview. String Operation Arguments. Operations that Are
Not Provided. Constructors and Destructors. Strings and C-Strings.
Size and Capacity. Element Access. Comparisons. Modifiers.
Assignments. Swapping Values. Making Strings Empty. Inserting and
Removing Characters. Substrings and String Concatenation.
Input/Output Operators. Searching and Finding. The Value npos.
Iterator Support for Strings. Iterator Functions for Strings.
Example of Using String Iterators. Internationalization.
Performance. Strings and Vectors.String Class in Detail.Type
Definitions and Static Values. Create, Copy, and Destroy
Operations. Operations for Size and Capacity. Size Operations.
Capacity Operations. Comparisons. Character Access. Generating
C-Strings and Character Arrays. Modifying Operations. Assignments.
Appending Characters. Inserting Characters. Erasing Characters.
Changing the Size. Replacing Characters. Searching and Finding.
Find a Character. Find a Substring. Find First of Different
Characters. Find Last of Different Characters. Substrings and
String Concatenation. Input/Output Functions. Generating Iterators.
Allocator Support.
12. Numerics.
12.1 Complex Numbers.Examples Using Class Complex. Operations for
Complex Numbers. Create, Copy, and Assign Operations. Implicit Type
Conversions. Value Access. Comparison Operations. Arithmetic
Operations. Input/Output Operations. Transcendental Functions.
Class complex in Detail. Type Definitions. Create, Copy, and Assign
Operations. Element Access. Input/Output Operations. Operators.
Transcendental Functions.Valarrays.Getting to Know Valarrays.
Header File. Creating Valarrays. Valarray Operations.
Transcendental Functions. Valarray Subsets. Valarray Subset
Problems. Slices. General Slices. Masked Subsets. Indirect Subsets.
Class valarray in Detail. Create, Copy, and Destroy Operations.
Assignment Operations. Member Functions. Element Access. Valarray
Operators. Transcendental Functions. Valarray Subset Classes in
Detail. Class slice and Class slice_array. Class gslice and Class
gslice_array. Class mask_array. Class indirect_array.Global Numeric
Functions.
13. Input/Output Using Stream Classes.
Recent Changes in the IOStream Library.Common Background of I/O
Streams.Stream Objects. Stream Classes. Global Stream Objects.
Stream Operators. Manipulators. A Simple Example.Fundamental Stream
Classes and Objects.Classes and Class Hierarchy. Purpose of the
Stream Buffer Classes. Detailed Class Definitions. Global Stream
Objects. Header Files.Standard Stream Operators .Output Operator
Nicolai M. Josuttis is an independent technical consultant who designs object-oriented software for the telecommunications, traffic, finance, and manufacturing industries. He is an active member of the C++ Standards Committee Library Working Group. Nicolai has written several books on object-oriented programming and C++. See www.josuttis.com.
Ask a Question About this Product More... |