| |
| |
Preface to the Second Edition | |
| |
| |
Acknowledgments for the Second Edition | |
| |
| |
Preface to the First Edition | |
| |
| |
Acknowledgments for the First Edition | |
| |
| |
| |
About This Book | |
| |
| |
| |
Why This Book | |
| |
| |
| |
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 | |
| |
| |
| |
Introduction to C++ and the Standard Library | |
| |
| |
| |
History of the C++ Standards | |
| |
| |
| |
Complexity and Big-O Notation | |
| |
| |
| |
New Language Features | |
| |
| |
| |
New C++11 Language Features | |
| |
| |
| |
Old "New" Language Features | |
| |
| |
| |
General Concepts | |
| |
| |
| |
Namespace std | |
| |
| |
| |
Header Files | |
| |
| |
| |
Error and Exception Handling | |
| |
| |
| |
Callable Objects | |
| |
| |
| |
Concurrency and Multithreading | |
| |
| |
| |
Allocators | |
| |
| |
| |
Utilities | |
| |
| |
| |
Pairs and Tuples | |
| |
| |
| |
Smart Pointers | |
| |
| |
| |
Numeric Limits | |
| |
| |
| |
Type Traits and Type Utilities | |
| |
| |
| |
Auxiliary Functions | |
| |
| |
| |
Compile-Time Fractional Arithmetic with Class ratio<> | |
| |
| |
| |
Clocks and Timers | |
| |
| |
| |
Header Files <cstddef>, <cstdlib>, and <cstring> | |
| |
| |
| |
The Standard Template Library | |
| |
| |
| |
STL Components | |
| |
| |
| |
Containers | |
| |
| |
| |
Iterators | |
| |
| |
| |
Algorithms | |
| |
| |
| |
Iterator Adapters | |
| |
| |
| |
User-Defined Generic Functions | |
| |
| |
| |
Manipulating Algorithms | |
| |
| |
| |
Functions as Algorithm Arguments | |
| |
| |
| |
Using Lambdas | |
| |
| |
| |
Function Objects | |
| |
| |
| |
Container Elements | |
| |
| |
| |
Errors and Exceptions inside the STL | |
| |
| |
| |
Extending the STL | |
| |
| |
| |
STL Containers | |
| |
| |
| |
Common Container Abilities and Operations | |
| |
| |
| |
Arrays | |
| |
| |
| |
Vectors | |
| |
| |
| |
Deques | |
| |
| |
| |
Lists | |
| |
| |
| |
Forward Lists | |
| |
| |
| |
Sets and Multisets | |
| |
| |
| |
Maps and Multimaps | |
| |
| |
| |
Unordered Containers | |
| |
| |
| |
Other STL Containers | |
| |
| |
| |
Implementing Reference Semantics | |
| |
| |
| |
When to Use Which Container | |
| |
| |
| |
STL Container Members in Detail | |
| |
| |
| |
Type Definitions | |
| |
| |
| |
Create, Copy, and Destroy Operations | |
| |
| |
| |
Nonmodifying Operations | |
| |
| |
| |
Assignments | |
| |
| |
| |
Direct Element Access | |
| |
| |
| |
Operations to Generate Iterators | |
| |
| |
| |
Inserting and Removing Elements | |
| |
| |
| |
Special Member Functions for Lists and Forward Lists | |
| |
| |
| |
Container Policy Interfaces | |
| |
| |
| |
Allocator Support | |
| |
| |
| |
STL Iterators | |
| |
| |
| |
Header Files for Iterators | |
| |
| |
| |
Iterator Categories | |
| |
| |
| |
Auxiliary Iterator Functions | |
| |
| |
| |
Iterator Adapters | |
| |
| |
| |
Iterator Traits | |
| |
| |
| |
Writing User-Defined Iterators | |
| |
| |
| |
STL Function Objects and Using Lambdas | |
| |
| |
| |
The Concept of Function Objects | |
| |
| |
| |
Predefined Function Objects and Binders | |
| |
| |
| |
Using Lambdas | |
| |
| |
| |
STL Algorithms | |
| |
| |
| |
Algorithm Header Files | |
| |
| |
| |
Algorithm Overview | |
| |
| |
| |
Auxiliary Functions | |
| |
| |
| |
The for_each() Algorithm | |
| |
| |
| |
Nonmodifying Algorithms | |
| |
| |
| |
Modifying Algorithms | |
| |
| |
| |
Removing Algorithms | |
| |
| |
| |
Mutating Algorithms | |
| |
| |
| |
Sorting Algorithms | |
| |
| |
| |
Sorted-Range Algorithms | |
| |
| |
| |
Numeric Algorithms | |
| |
| |
| |
Special Containers | |
| |
| |
| |
Stacks | |
| |
| |
| |
Queues | |
| |
| |
| |
Priority Queues | |
| |
| |
| |
Container Adapters in Detail | |
| |
| |
| |
Bitsets | |
| |
| |
| |
Strings | |
| |
| |
| |
Purpose of the String Classes | |
| |
| |
| |
Description of the String Classes | |
| |
| |
| |
String Class in Detail | |
| |
| |
| |
Regular Expressions | |
| |
| |
| |
The Regex Match and Search Interface | |
| |
| |
| |
Dealing with Subexpressions | |
| |
| |
| |
Regex Iterators | |
| |
| |
| |
Regex Token Iterators | |
| |
| |
| |
Replacing Regular Expressions | |
| |
| |
| |
Regex Flags | |
| |
| |
| |
Regex Exceptions | |
| |
| |
| |
The Regex ECMA Script Grammar | |
| |
| |
| |
Other Grammars | |
| |
| |
| |
Basic Regex Signatures in Detail | |
| |
| |
| |
Input/Output Using Stream Classes | |
| |
| |
| |
Common Background of I/O Streams | |
| |
| |
| |
Fundamental Stream Classes and Objects | |
| |
| |
| |
Standard Stream Operators << and >> | |
| |
| |
| |
State of Streams | |
| |
| |
| |
Standard Input/Output Functions | |
| |
| |
| |
Manipulators | |
| |
| |
| |
Formatting | |
| |
| |
| |
Internationalization | |
| |
| |
| |
File Access | |
| |
| |
| |
Stream Classes for Strings | |
| |
| |
| |
Input/Output Operators for User-Defined Types | |
| |
| |
| |
Connecting Input and Output Streams | |
| |
| |
| |
The Stream Buffer Classes | |
| |
| |
| |
Performance Issues | |
| |
| |
| |
Internationalization | |
| |
| |
| |
Character Encodings and Character Sets | |
| |
| |
| |
The Concept of Locales | |
| |
| |
| |
Locales in Detail | |
| |
| |
| |
Facets in Detail | |
| |
| |
| |
Numerics | |
| |
| |
| |
Random Numbers and Distributions | |
| |
| |
| |
Complex Numbers | |
| |
| |
| |
Global Numeric Functions | |
| |
| |
| |
Valarrays | |
| |
| |
| |
Concurrency | |
| |
| |
| |
The High-Level Interface: async() and Futures | |
| |
| |
| |
The Low-Level Interface: Threads and Promises | |
| |
| |
| |
Starting a Thread in Detail | |
| |
| |
| |
Synchronizing Threads, or the Problem of Concurrency | |
| |
| |
| |
Mutexes and Locks | |
| |
| |
| |
Condition Variables | |
| |
| |
| |
Atomics | |
| |
| |
| |
Allocators | |
| |
| |
| |
Using Allocators as an Application Programmer | |
| |
| |
| |
A User-Defined Allocator | |
| |
| |
| |
Using Allocators as a Library Programmer | |
| |
| |
Bibliography | |
| |
| |
Index | |