REVIEW - STL Tutorial and Reference Guide - C++ Programming with the Standard Template Library


Title:

STL Tutorial and Reference Guide

C++ Programming with the Standard Template Library

Author:

David R. Musser, Gillmer J. Derge, Atul Saini

ISBN:

Publisher:

Addison-Wesley Professional (2001)

Pages:

509pp

Reviewer:

Francis Glassborow

Reviewed:

June 2001

Rating:

★★★☆☆


If you want a book to learn about using the STL this is about as good as you are likely to find.

The first edition of this book has always been held in high regard but was dated almost before it was published because the C++ Standards Committees altered the original STL in a lot of ways. The principles were retained but the detail was altered. With the publication of such books as Matt Austern's 'Generic Programming and the STL' and Nico Josuttis' 'The C++ Standard Library' the earlier edition lost most of the relevance that it had to the needs of the working programmer.

Now the original duo of authors have been joined by Gillmer Derge and done a very substantial review of the original text. While the framework is recognisably the same they have added detail, smoothed rough edges in the text and substantially improved the sample code. They have also been strongly influenced by Knuth's Literate Programming. I think the end result is a book that comfortably sits along side the books from Austern and Josuttis.

One question that will spring to your mind is how this book is different from the other two. That is an important question. The C++ Standard Library is substantially a reference book that aims to help the competent C++ programmer to use elements of the C++ Standard Library effectively. It does an excellent job but is not primarily a tutorial despite that aspect being included (and referred to in its sub-title). It certainly is not a book about generic programming.

Austern's book is very much about generic programming and focuses on teaching you about the way that programming paradigm is implemented in the STL, before providing you with simple documentation of the realisation of the STL. If I want to know how to add a new component to the STL so that it will work consistently in the existing framework and leverage of what is already there, it is Austern's book that I will reach for.

By now you should realise that there is a hole (partly covered by Leen Ammeraal's 'STL for C++ Programmers') and that is a simple tutorial on using the STL. This book now plugs that gap.

The authors have worked hard to ensure that they use the STL as specified by the C++ Standard. The early chapters introduce the various aspects and have well-written examples to help the reader understand what is going on. In the second part of the book they focus on using the STL. This is very much the part of the book that will reward diligent readers. One aspect of Literate Programming is that you have to read to understand what is going on and cannot simply grab a chunk of code. In my view this is a positive aspect, but not everyone will see it that way.

While I think the second part of this book is by far the best, I think I would defer to one of the other books I mentioned above when I needed a reference. The reference material here is adequate, and makes sense in the context of providing the student with all the essentials between one set of covers. However I prefer something rather more detailed when it comes to a permanent reference.

The promise of the first edition of this book has been realised in this second edition. If you want a book to learn about using the STL this is about as good as you are likely to find.


Book cover image courtesy of Open Library.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.