Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Using the STL
Robson R., Springer-Verlag New York, Inc., Secaucus, NJ, 1998. Type: Book (9780387982045)
Date Reviewed: Jul 1 1998

The Standard Template Library (STL) is a relatively new and important addition to C++ that was made possible by the wide acceptance and implementation of the template facility provided by the language. It provides a collection of generic data structures and algorithms that are meant to address many programmers’ real-world concerns about how to approach data organization and manipulation in various programming situations. This introduction and guide to the STL assumes familiarity with C++.

Chapter 1, an introduction, explains the need for and purpose of the STL approach. A preliminary “light” definition of the fundamental concept of iterators is given, and algorithm complexity issues are discussed. Chapter 2 is entirely devoted to iterators, which are basic to the STL. Iterators are introduced by comparison with pointers. They are then further classified, and examples of each class are provided. Chapter 3 presents an overview of STL algorithms and classifies them. The subsequent detailed analysis is based on this classification. Seven chapters detail each class of algorithm and, with the many examples and explanations given, constitute a solid reference for learning about and applying the STL. Many practical hints and specific facets provide the programmer with a solid background in and deep reference to the STL.

Chapter 4 discusses sequence algorithms. Chapter 5 continues with sorting, searching, set, and heap algorithms. Although details about algorithms are given, this is not an algorithm design text.

Chapter 6 presents the few numerical algorithms in the STL, including accumulation, inner product, partial sum, and adjacent difference.Chapter 7 is devoted to the crucial issue of sequence containers.Vectors and lists are thoroughly detailed.Chapter 8 is concerned with the other type of container--associative containers--and their implementations. Robson gives details, explains why red-black trees are the preferred method of implementing associative containers, and discusses adding a hash table–based implementation to the STL. Adaptors are explained well in chapter 9. Chapter 10 gives a cursory view of allocators, which were created to isolate programmers from memory structures in different machine architectures.

Two detailed real-world uses of the STL are presented in chapter 11, along with detailed code. The first example is drawn from a bank transaction system, while the second deals with symbol tables, such as can be found in a compiler implementation. Chapter 12 concludes the book with some thoughts about the future of the STL and associated developments. The appendix is a complete programmer’s reference to the STL, covering all supported data structures and functions, a valuable resource for everyday use.

The book may seem a bit dry in certain places, and in others, more details about implementations would be useful. Overall, the book’s contents and explanations are well balanced, and it is a valuable reference for C++ programmers at all levels.

Reviewer:  Vladimir Botchev Review #: CR121800 (9807-0474)
Bookmark and Share
 
Software Libraries (D.2.2 ... )
 
 
C++ (D.3.2 ... )
 
 
Data Types And Structures (D.3.3 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Software Libraries": Date
Mixed language programming
Einarsson B., Gentleman W. Software--Practice & Experience 14(4): 383-392, 1984. Type: Article
May 1 1985
Programming solutions handbook for IBM microcomputers
Sanchez J., Canton M., McGraw-Hill, Inc., New York, NY, 1991. Type: Book (9780070545977)
Sep 1 1992
Design of an Ada library of elementary functions with error handling
Corliss G. Journal of Pascal, Ada & Modula-2 6(3): 17-31, 1987. Type: Article
Jul 1 1988
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy