Amazon.com Customer Reviews
Stop searching, this is the one you want - Review written on March 29, 2007
Rating: 5 out of 5
5 customers found this review helpful, 1 did not.
Yes it's long, but I have found this book faster to make use of than shorter books on the topic of the Standard Template library (STL). This is the book you want.
Read Ch 2, scan Ch 3. Ch 4 can wait, page through, don't read Ch 5. Read Ch 6 and just note how iterators can be used in Ch 7. And you are done. This can be done in under 3 hours. Then use the rest of the book just as a reference as needed and you will be an STL user eventual expert.
After using STL, you will never go back -- it transforms C++ into a useful language rather than a memory management sink hole. Oh, then you will want to go on to the new proposed, but not yet accepted (as of March 2007) standard library extensions. For that, see "The C++ Standard Library Extensions" by Pete Becker The C++ Standard Library Extensions: A Tutorial and Reference
What do the extensions (sometimes known as "Boost" library) add that's missing in STL? Well, Hash functions (how could these have been left out?), tuples rather than just pairs. Pairs in STL allow you to treat items as a unit -- very useful for database and pattern recognition/association for example. Tuples extend this to lists of items. Pointers with reference counting -- Speed up your code by easily avoiding needless copying and have the memory auto delete when all references to it go away. Doesn't solve the problem of "fatal embraces" where references point to each other, but it helps a lot.
What's still missing? By now, decision trees are just so mature and useful that they ought to be built in along with statistical boosting, k-means and agglomerative clustering, K-D trees for nearest neighbor association. That is IMHO, data ought not only allow methods to be attached, but clustering and basic machine learning/prediction should just be built in and standard by now. The above routines are mature and a basis of much more advanced routines.
Not perfect, but the best book out there - Review written on February 08, 2005
Rating: 4 out of 5
13 customers found this review helpful, 1 did not.
This book is the best book currently in print on the subject of the C++ STL library. The writing is reasonably clear, and follows a good progressive approach, first introducing the reader to all the general concepts, and then tackling them one by one with all the intricate details.
This book is only for those already with advanced experience with C++ templates. Do not buy this book unless you have read either Schildt's "The Complete C++ Reference" or Lippman's "C++ Primer".
If read cover to cover and fully understood, this book will take you from knowing nothing about the C++ STL, all the way to being an advanced STL expert.
This book could have been better though. For example, almost all the examples use some simple type (such as int or double) as the template arguments. Therefore, most of the examples don't deal with overriding the appropriate operators (e.g. '<' and '==') to get the algorithms to work. Don't get me wrong, this kind of information IS contained in the book, but you have to search for it.
So well written that you don't have to read it - Review written on December 09, 2004
Rating: 5 out of 5
4 customers found this review helpful, 1 did not.
I'm an undergraduate computer engineering student. I purchased this book to learn how C++ library-based programming is done in the real world, not in the classroom where we must reinvent the wheel for every project.
I was skeptical when I read the other reviews, but I am extremely impressed with this book. I have not had the chance to sit down and read the book cover to cover yet. However, I have cracked it open a few times when I've gotten stuck, and have been amazed that I have been able to quickly and effortlessly find clear, concise, and thorough answers to every STL question that I've had.
The book is extremely well written: it's well structured, well indexed, and easy to digest. Extremely cost effective.
On a side note, I'm finding it to be an excellent supplement to my data structures & algorithm course's text: the STL is full of innovative, refined, tried and true approaches, whereas the course text presents things coarsely via mechanisms that the author implemented on his own for the sake of his book.
A Solid Reference - Review written on July 29, 2004
Rating: 5 out of 5
7 customers found this review helpful, 2 did not.
This is an excellent reference book on STL containers and algorithms, from the perspective of an intermediate-level programmer (self-taught, two years' C++). I use this reference every day - the hardcover helps it lie nicely on my desk - perhaps in part of what I'm doing: plain(?) C++, not Windows MFC, using the boost::bind from the (freely downloadable) C++ Boost Libraries to write functors (objects that define the call operator) for use as predicates in calling STL algorithms on STL containers. So yes, in my limited experience, Josuttis's book contributes to a happy level of productivity and lets me draw on the STL because it is part of a package deal: Meyer's Effective STL (e.g. item 43: prefer STL algorithm calls to hand-written loops, so as to improve code readability and speed), the Boost::bind library, and Josuttis's reference. If boost doesn't appeal, in chapter 8.3ff Josuttis does supply source code for supplementary composing function objects. With neither those nor boost, any STL algorithm using a functor parameter would likely not merit the learning time, and I'd have STL containers, iterators, and more hand-written loops.
One odd thing: the reference layout has worked well enough for me that I haven't felt the need to read from cover to cover, because the index & table of contents & occasional apt cross-reference almost always put me in the 1-5 pages that answer my question. I browsed another STL book in the bookstore today & wondered, why haven't I come across so helpful a description of user-defined iterators in Josuttis? When I got home, now with question in mind, I found the same information in Josuttis within a minute. I can readily imagine advanced users having questions not addressed in Josuttis, but at present his succinct STL pitfall flags, cautions & workarounds pretty much keep me from STL grief.
OK, so intriguing design concepts are not what this book is about; but the efficiency and thoroughness mean that his writing style is not plain, it's lucid *smile*.
tutorial maybe, NOT a reference of any depth - Review written on February 25, 2004
Rating: 2 out of 5
34 customers found this review helpful.
I so wanted to like this book, but I take a $50 book purchase very seriously. Every time I try to look something up in this book, I end up finding the answer in The C++ Programming Language (3rd Ed, by Stroustrup) instead. That bums me out. I wanted a reference for the STL that I could pull out while coding and get the answer with no digging. This book ain't it.
Also, I read the first couple of chapters straight through and they struck me as weak. There seemed to be selective assumptions about what the reader should know. I'm an experienced coder and I had trouble figuring out what the author was really trying to get across, or why. I guess I'm used to the efficient, logical, concept-packed prose (and expertise) of Stroustrup, Kernighan/Ritchie, and Meyers.
Even so, I will continue to give this book a chance and will edit my review if I find that I was too quick to judgment.
----------
Okay, here's my update. I have returned the book to amazon. The title should be STL Primer, as in a breezy INTRODUCTION to the STL. It is a reference only for beginners (in my view). The examples are uniformly simplistic and there is little depth to the discussions. Even when some potential pitfall or complexity is mentioned, the matter is dropped right there.
This all sounds negative, but I don't mean to be. I was simply misled by the huge number of (inaccurate) raves. This is NOT a reference of any depth. It certainly is not a "must have". It may be a decent tutorial for someone new to STL.