This book is a mix of introductory user's guide and structured reference manual regarding the C++ standard library.
Chapter 1. About this Book
Section 1.1 Why this Book
Section 1.2 What You Should Know Before Reading this Book
Section 1.3 Style and Structure of the Book
Section 1.4 How to Read this Book
Section 1.5 State of the Art
Section 1.6 Example Code and Additional Information
Section 1.7 Feedback
Chapter 2. Introduction to C++ and the Standard Library
Section 2.1 History
Section 2.2 New Language Features
Section 2.3 Complexity and the Big-O Notation
Chapter 3. General Concepts
Section 3.1 Namespace
Section 3.2 Header Files
Section 3.3 Error and Exception Handling
Section 3.4 Allocators
Chapter 4. Utilities
Section 4.1 Pairs
Section 4.1.1 Convenience Function
Section 4.1.2 Examples of Pair Usage
Section 4.2 Class
Section 4.3 Numeric Limits
Section 4.4 Auxiliary Functions
Section 4.5 Supplementary Comparison Operators
Section 4.6 Header Files
Chapter 5. The Standard Template Library
Section 5.1 STL Components
Section 5.2 Containers
Section 5.3 Iterators
Section 5.4 Algorithms
Section 5.5 Iterator Adapters
Section 5.6 Manipulating Algorithms
Section 5.7 User-Defined Generic Functions
Section 5.8 Functions as Algorithm Arguments
Section 5.9 Function Objects
Section 5.10 Container Elements
Section 5.11 Errors and Exceptions Inside the STL
Section 5.12 Extending the STL
Chapter 6. STL Containers
Section 6.1 Common Container Abilities and Operations
Section 6.2 Vectors
Section 6.3 Deques
Section 6.4 Lists
Section 6.5 Sets and Multisets
Section 6.6 Maps and Multimaps
Section 6.7 Other STL Containers
Section 6.8 Implementing Reference Semantics
Section 6.9 When to Use which Container
Section 6.10 Container Types and Members in Detail
Chapter 7. STL Iterators
Section 7.1 Header Files for Iterators
Section 7.2 Iterator Categories
Section 7.3 Auxiliary Iterator Functions
Section 7.4 Iterator Adapters
Section 7.5 Iterator Traits
Chapter 8. STL Function Objects
Section 8.1 The Concept of Function Objects
Section 8.2 Predefined Function Objects
Section 8.3 Supplementary Composing Function Objects
Chapter 9. STL Algorithms
Section 9.1 Algorithm Header Files
Section 9.2 Algorithm Overview
Section 9.3 Auxiliary Functions
Section 9.4 The
Section 9.5 Nonmodifying Algorithms
Section 9.6 Modifying Algorithms
Section 9.7 Removing Algorithms
Section 9.8 Mutating Algorithms
Section 9.9 Sorting Algorithms
Section 9.10 Sorted Range Algorithms
Section 9.11 Numeric Algorithms
Chapter 10. Special Containers
Section 10.1 Stacks
Section 10.2 Queues
Section 10.3 Priority Queues
Section 10.4 Bitsets
Chapter 11. Strings
Section 11.1 Motivation
Section 11.2 Description of the String Classes
Section 11.3 String Class in Detail
Chapter 12. Numerics
Section 12.1 Complex Numbers
Section 12.2 Valarrays
Section 12.3 Global Numeric Functions
Chapter 13. Input/Output Using Stream Classes
Section 13.1 Common Background of I/O Streams
Section 13.2 Fundamental Stream Classes and Objects
Section 13.3 Standard Stream Operators << and >>
Section 13.4 State of Streams
Section 13.5 Standard Input/Output Functions
Section 13.6 Manipulators
Section 13.7 Formatting
Section 13.8 Internationalization
Section 13.9 File Access
Section 13.10 Connecting Input and Output Streams
Section 13.11 Stream Classes for Strings
Section 13.12 Input/Output Operators for User-Defined Types
Section 13.13 The Stream Buffer Classes
Section 13.14 Performance Issues
Chapter 14. Internationalization
Section 14.1 Different Character Encodings
Section 14.2 The Concept of Locales
Section 14.3 Locales in Detail
Section 14.4 Facets in Detail
Chapter 15. Allocators
Section 15.1 Using Allocators as an Application Programmer
Section 15.2 Using Allocators as a Library Programmer
Section 15.3 The Default Allocator
Section 15.4 A User-Defined Allocator
Section 15.5 Allocators in Detail
Section 15.6 Utilities for Uninitialized Memory in Detail
Internet Resources
Bibliography
Soon after its introduction, C++ became a de facto standard in object-oriented programming. This led to the goal of standardization. Only by having a standard, could programs be written that would run on different platforms — from PCs to mainframes. Furthermore, a standard library would enable programmers to use general components and a higher level of abstraction without losing portability, rather than having to develop all code from scratch.
The standardization process was started in 1989 by an international ANSI/ISO committee. It developed the standard based on Bjarne Stroustrup's books The C++ Programming Language and The Annotated C++ Reference Manual. After the standard was completed in 1997, several formal motions by different countries made it an international ISO and ANSI standard in 1998. The standardization process included the development of a C++ standard library. The library extends the core language to provide some general components. By using C++'s ability to program new abstract and generic types, the library provides a set of common classes and interfaces. This gives programmers a higher level of abstraction. The library provides the ability to use
ll of these are supported by a fairly simple programming interface. These components are very important for many programs. These days, data processing often means inputting, computing, processing, and outputting large amounts of data, which are often strings.
The library is not self-explanatory. To use these components and to benefit from their power, you need a good introduction that explains the concepts and the important details instead of simply listing the classes and their functions. This book is written exactly for that purpose. First, it introduces the library and all of its components from a conceptional point of view. Next, it describes the details needed for practical programming. Examples are included to demonstrate the exact usage of the components. Thus, this book is a detailed introduction to the C++ library for both the beginner and the practical programmer. Armed with the data provided herein, you should be able to take full advantage of the C++ standard library.