Programming with the C++ Standard Library can certainly be difficult, but Nicolai M. Josuttis's The C++ Standard Library: A Tutorial and Reference provides one of the best available guides to using the built-in features of C++ effectively.
The C++ Standard Library provides plenty of default functionality in the form of the Standard Template Library (STL) for containers (like vectors and linked lists), as well as generic algorithms (which allow you to sort, search, and manipulate elements inside containers). The best thing about The C++ Standard Library is that it gives the reader a concise guide to working with these basic containers (from lists to sets and maps, with everything in between). Each container type is explained along with short code excerpts. Moreover, in a reference section, the author explores the connections between each container type, showing how they share similar methods.
In addition to STL, this book excels at providing a readable introduction to the generic algorithms (which can be used to sort, search, and otherwise manipulate STL containers). Generic algorithms work with all the STL types. By separating these algorithms, author Josuttis enables the reader to learn the rich array of algorithms available in today's standard C++. This book concentrates on STL and algorithms, and readers will also find great coverage on Standard Library string classes and streams (including a fine section on internationalization and locales).
For the beginning or intermediate C++ programmer, The C++ Standard Library can be a real timesaver. It arranges and explains the complexities of the C++ Standard Library and STL in a manageable format that is excellent as a reference and as an approach to programming.
832 pages, hardcover
- History of C++ and the Standard Library
- Template Basics
- Big-O Notation
- The Standard Namespace
- Standard Exceptions
- Standard Library Utilities
- Pairs and
- Numeric Limits
- The Standard Template Library (STL) Basics
- Iterator Adapters
- Function Objects
- Element Requirements
- Value and Reference Semantics
- Complex Numbers
- Stream Classes
- Stream Manipulators and Formatting
- File I/O