Book description
The C++ standard library provides a set of common classes and interfaces that greatly extend the core C++ language. The library, however, is not self-explanatory. To make full use of its components-and to benefit from their power-you need a resource that does far more than list the classes and their functions.
The C++ Standard Library not only provides comprehensive documentation of each library component, it also offers clearly written explanations of complex concepts, describes the practical programming details needed for effective use, and gives example after example of working code.
This thoroughly up-to-date book reflects the newest elements of the C++ standard library incorporated into the full ANSI/ISO C++ language standard. In particular, the text focuses on the Standard Template Library (STL), examining containers, iterators, function objects, and STL algorithms. You will also find detailed coverage of special containers, strings, numerical classes, internationalization, and the IOStream library. Each component is presented in depth, with an introduction to its purpose and design, examples, a detailed description, traps and pitfalls, and the exact signature and definition of its classes and their functions. An insightful introduction to fundamental concepts and an overview of the library will help bring newcomers quickly up to speed.
Comprehensive, detailed, readable, and practical, The C++ Standard Library is the C++ resource you will turn to again and again. An accompanying Web site, including source code, can be found at http://www.josuttis.com/.
0201379260B04062001
Table of contents
- Copyright
- Preface
- 1. About this Book
-
2. Introduction to C++ and the Standard Library
- 2.1. History
- 2.2. New Language Features
- 2.3. Complexity and the Big-O Notation
- 3. General Concepts
-
4. Utilities
- 4.1. Pairs
- 4.1.1. Convenience Function make_pair()
- 4.1.2. Examples of Pair Usage
- 4.2. Class auto_ptr
- 4.3. Numeric Limits
- 4.4. Auxiliary Functions
- 4.5. Supplementary Comparison Operators
- 4.6. Header Files <cstddef> and <cstdlib>
-
5. The Standard Template Library
- 5.1. STL Components
- 5.2. Containers
- 5.3. Iterators
- 5.4. Algorithms
- 5.5. Iterator Adapters
- 5.6. Manipulating Algorithms
- 5.7. User-Defined Generic Functions
- 5.8. Functions as Algorithm Arguments
- 5.9. Function Objects
- 5.10. Container Elements
- 5.11. Errors and Exceptions Inside the STL
- 5.12. Extending the STL
-
6. STL Containers
- 6.1. Common Container Abilities and Operations
- 6.2. Vectors
- 6.3. Deques
- 6.4 . Lists
- 6.5. Sets and Multisets
- 6.6. Maps and Multimaps
- 6.7. Other STL Containers
- 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
- 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
- 6.10.10. Overview of Exception Handling in STL Containers
- 7. STL Iterators
- 8. STL Function Objects
-
9. STL Algorithms
- 9.1. Algorithm Header Files
- 9.2. Algorithm Overview
- 9.3. Auxiliary Functions
- 9.4. The for_each() Algorithm
- 9.5. Nonmodifying Algorithms
- 9.6. Modifying Algorithms
- 9.7. Removing Algorithms
- 9.8. Mutating Algorithms
- 9.9. Sorting Algorithms
- 9.10. Sorted Range Algorithms
- 9.11. Numeric Algorithms
- 10. Special Containers
-
11. Strings
- 11.1. Motivation
-
11.2. Description of the String Classes
- 11.2.1. String Types
- 11.2.2. Operation Overview
- 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
- 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
- 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
- 11.3.4. Comparisons
- 11.3.5. Character Access
- 11.3.6. Generating C-Strings and Character Arrays
- 11.3.7. Modifying Operations
- 11.3.8. Searching and Finding
- 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.2. Valarrays
- 12.3. Global Numeric Functions
-
13. Input/Output Using Stream Classes
- 13.1. Common Background of I/O Streams
- 13.2. Fundamental Stream Classes and Objects
- 13.3. Standard Stream Operators << and >>
- 13.4. State of Streams
- 13.5. Standard Input/Output Functions
- 13.6. Manipulators
- 13.7. Formatting
- 13.8. Internationalization
- 13.9. File Access
- 13.10. Connecting Input and Output Streams
- 13.11. Stream Classes for Strings
- 13.12. Input/Output Operators for User-Defined Types
- 13.13. The Stream Buffer Classes
- 13.14. Performance Issues
-
14. Internationalization
- 14.1. Different Character Encodings
- 14.2. The Concept of Locales
- 14.3. Locales in Detail
- 14.4. Facets in Detail
- 15. Allocators
- Internet Resources
- Bibliography
Product information
- Title: The C++ Standard Library: A Tutorial and Reference
- Author(s):
- Release date: August 1999
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780201379266
You might also like
book
C++ Standard Library Quick Reference
This quick reference is a condensed reference guide to the essential data structures, algorithms, and functions …
video
Mastering C++ Standard Library Features
C++ has come a long way and has now been adopted in several contexts with the …
book
Practical C++ Metaprogramming
To say that C++ programmers embrace metaprogramming is a real stretch. Outright rejection is probably more …
book
C++ Reactive Programming
Learn how to implement the reactive programming paradigm with C++ and build asynchronous and concurrent applications …