ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Designing Components with the C++ STL
Ulrich Breymann
0 201 17816 8
Francis Glassborow
data structures; advanced c++
Appeared in:
The life of a book reviewer can be very difficult. Shortly after reading and reviewing Timothy Budd's book I picked up this one. I wondered if I should go back to change my earlier review. After some thought I concluded that even had I the time, it would not be fair. The books have very different target readerships. However I am thankful that you have the opportunity to read this review at the same time as the one forData Structures in C++: Using the STL.

This book was originally written in German and published in 1996. It has now been translated into English. The author couples a profound understanding of C++ and the STL (he is one of Germany's technical experts on C++) and a solid grasp of the needs of those learning new material. The English text reads well and the translator should be complemented on the quality(Addison Wesley Longman should credit translator on the title page).

The first part of the book covers the STL concept and the main STL types (iterators, containers and ADTs - stack, queue etc - provided by adaptors). The next section focuses on a comprehensive single chapter on the standard algorithms.

The third part (second half) of the book concentrates on using STL components to solve various programming problems and the writing of new components to augment the STL. Unlike Budd's book this one spends time on writing a design and implementation of Hash Table that fits the general specifications and constraints of the STL.

In general the code is of good quality (remembering that the reader should be a competent C++ programmer to start with, so does not need code that can be safely emulated without thought) however there are a couple of flaws that I hope the author will attend to. The first is that he should immediately (i.e. at the next printing) change his header sentinels. No pre-processor identifier should ever be written in lower case. In addition, though standard C++ headers are written without a .h extension, user defined ones need the extension if current development tools are going to map the names correctly. Of course the sentinel should also end with

to ensure that there is no collision with other pre- processor identifiers.

I think it is high time that authors of high quality texts set an example by avoiding the use of

directives. I know that
using namespace std;
is almost universal but it does exactly what namespace
was intended to avoid, it pollutes the global namespace with all the identifiers of
. I hope the author attends to this in the next edition.

If you have already got a start with the STL by reading something such as Leen Ammeraal's excellentSTL for C++ Programmersthis book would make an excellent study to take you on to higher things.