[Home Page] - [Reviews Main] | |
|
Designing Components with the C++ STL by Ulrich Breymann Recommended with Reservations |
| ISBN: 0 201 17816 8 Publisher: Addison-Wesley Pages: 307pp Price: £29-95 |
| Categories: data structures advanced c++ |
| Reviewed by Francis Glassborow in C Vu 10-4 (May 1998) |
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
_H 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 using directives. I know that
using namespace std; is almost universal but it does exactly
what namespace std was intended to avoid, it pollutes the
global namespace with all the identifiers of std . 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 excellent STL for C++ Programmers this book would make an excellent study to take you on to higher things.
To link to this review, please use the URL: http://www.accu.org/bookreviews/public/reviews/d/d001571.htm
Copyright © The Association of C & C++ Users 1998-2000. All rights reserved.