C++ Standard Template Library, The
||Author: P.J. Plauger, Alexander A. Stepanov, Meng Lee, David R. Musser|
List Price: $53.00
Our Price: Click to see the latest and low price
Publisher: Prentice Hall PTR (December, 2000)
Sales Rank: 126,305
Average Customer Rating: 3.75 out of 5
Customer ReviewsRating: 4 out of 5
not the book for a quick overview
I had basically no knowledge of STL when I purchased this book and was quite afraid of templates. My job duties involve only sporadic forays into C++ so I had not had a lot of chance to get practical exposure to STL. In addition, the books I studied to learn C++ (and most C++ books I have seen since) tend to stumble a bit when it comes to covering templates. It was with these pre-existing handicaps that I began tackling this book. I will discuss the bad parts of the book first, but please keep reading down to the good parts because I think this book is an excellent resource to have available and I wouldn't want to do the authors a disservice.
I found STL, and this book, to be pretty complicated when I started. Basically the book is divided up with a chapter for each header file in the library, which I am now convinced is NOT the best way to teach someone the STL. Keeping in mind that I had absolutely zero knowledge of the STL prior to reading this book, it was understandably confusing at first. Iterators and allocators are explained long before containers, which sort of leaves them with no apparent applications. Mention is made that they will be used later, but it was really hard (at least for me) to understand and remember the how's without knowing the why's. When I finally got to the container section I found myself flipping back pretty regularly to the iterator and allocator sections to review because much of that earlier material I didn't absorb in the first read. A student must be diligent and read most of the book before it will start to make sense. This means if a reader is looking for a book that will just get them up and running with the STL, this probably isn't the one.
Despite the above paragraph, I was on the verge of giving this book five stars. The book is thorough and methodical, and if you have the time to read it (and do some of the questions, I found them helpful) you will probably be quite good with the STL by the end. The authors definitely know the subject material. I did not find much humor or funny anecdotes to make the reading pass quicker, but most of the book was really concise. Probably 150 pages or so spread throughout the book is the source code, so they had to keep editorializing to a minimum. I found the writing to be pretty clear and as easy to understand as possible, given the complexity of the subject matter. It took me awhile to read through the whole book, and even afterwards I was still a bit cloudy, but after a couple hours of banging around with some test programs it all clicked into place and I feel really confident that I learned the material well.
Now that I have a good understanding of the STL, this book is second to none as a reference. While laying out the book header by header is a detriment to the learning process, it is invaluable later on as a reference. In addition, a complete and functional version of the STL code is printed in each appropriate chapter of the book. After each section of code is found a few line summary of each class and method, again invaluable as a reference.
In conclusion, I would rate this book as a must-have if you are serious about learning (and *understanding*) the STL. For the pretty reasonable price you get a thorough book by authors who know what they are doing, and an excellent post-read reference that you will want to have on your shelf. The only bad part about the book was it could have been organized to make the first read a bit better (to the detriment of later reads), and it won't get you up and running with the STL as quick as some other books might. It is definitely one of my top three favorite books on the shelf at home.
Rating: 4 out of 5
Excellent book for a highly specialized audience
Just a few months ago, I bemoaned the fact that Plauger's _The Draft Standard C++ Library_ had never been updated to the actual standard. I'm happy to report that this book contains an answer to a considerable part of my prayers: It contains an in-depth discussion of the STL, along with a complete, high quality implementation in source code form (Contrary to what the "Topics Covered" section on this page implies, however, the source code is NOT the Hewlett-Packard implementation, but a proprietary derivative which is commercially licensed).
It's hard to pin down exactly why, but this book was not quite as pleasurable a read as its predecessors. One of the reasons might be the typography: The use of underlining for emphasis of the actual makes the standards sections of the book unpleasant to read. There might be an issue of the subject: For all its power, there is not all that much interesting algorithmic stuff going on in the STL. Lastly, it seems that C++ template code as such, no matter how brilliantly written and how useful to the library client, is rather unpleasant to read-a somewhat sobering insight to a C++ aficionado as myself. As a result, the code that *was* algorithmically interesting was quite hard to understand-I would not recommend this book to somebody trying to learn about red-black trees, for instance.
If you buy just one book about the STL, buy Josuttis' _The Standard C++ Library_. If you want additional in-depth insight into the workings of the STL, and are willing to invest the time it takes to study the code, buy this book. I certainly never regretted reading it, and I hope that Plauger will update his implementation of the rest of the C++ library to publish a standard compliant version of the iostream and string libraries sometime in the future.
Rating: 5 out of 5
*THE* book you need if you want to extend STL
If you are new to STL or if you just want to sharpen your STL skills, this book is *not* for you. It's of very little use to STL client programmers, i.e. users of STL. It's even a little bit advanced for a programmer who is interested only in developing new STL algorithms but not containers/iterators.
But, if you're serious about extending STL, especially if you want to write new container and iterator classes, this is *the* book you need.
Personally, I make use of the information provided in this book to write a 3D container class and a couple of highly complex 3D iterators for an academic study demanding high speed and reliability. I have other STL books like Austern's Genetic Programming and the STL or, Musser's STL Tutorial and Reference Guide which are both extremely good references for *using* STL. But, those books did not help me even a little bit when I was trying to write a 3D iterator. I believe, The C++ Standard Template Library is the only book around that's really meant for serious STL developers.
So, if you ever want to develop a new container with a fair amount of new features or a new iterator with fancy tricks, buy this book. But, If you're only after using STL and/or developing new algorithms, stick with Austern's Genetic Programming or some other similar book...
· C++ Templates: The Complete Guide
· Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference
· Standard C Library, The
· The C++ Standard Library : A Tutorial and Reference
· The C++ Programming Language (Special 3rd Edition)