Average Customer Review:    
John's reviews are interesting. While I agree with many of the points he makes, I disagree with some. And I found a few to be self-contradictory.He says, for instance, that "This is a good solid book that will get you up to speed quickly on all the important ideas in STL, and many of its basic usage idioms", but then naievely claims that "there aren't any higher level ideas than those presented here". Does the book cover only basic concepts, or is it that if the book doesn't cover it, it is not knowledge? The book is full of concrete examples. But my problem was that they were trivial. Reversing or sorting or finding characters within a string is great fun. But it doesn't help me understand who owns the memory within a container. Or how to directly and safely reference an element at an arbitrary position within a container outside of an iteration loop. A majority of the examples use trivial intrinsic datatypes for contained elements; how is using a struct or class different? All of those issues are important aspects of using the library, and not something I think a busy reader should leave to "a little imagination". While most of the disputed facts are eventually available in the text, they're not easy to find. The organization of the book isn't quite intuitive enough to make it a thoughtful reference or a breezy tutorial. And, in many cases, once found, they're not clear. John cited page 151 for an explanation of the differences between some of the collections. There, it says "With maps an multimaps, the data items are pairs of keys and data of some other type..." What's that mean? Two keys and data of some other type? Or a key and data of some other type? Does "pairs" mean "two", or an instance of the "pairs" utility class? The book really is missing information. None of the examples do any error checking whatsoever, and the exceptions that the templates throw aren't described. (Maybe, like priority queues, error handling was formalized after the book went to press. It is showing its age, and there's now a 2nd edition. I haven't purchased it.) It's ambitious to write a book that tries to serve as both a tutorial and the reference. (Me, I think it's just impossible.) This book does very well, but falls short of adequately completing either goal. I think that there's a bias against this book because it doesn't fit well with the way these reviewers would have liked to learn the subject at hand. I know that's where I landed. While true masters do indeed make it look simple, making it look simple doesn't help learning. Otherwise, we could all watch Tiger Woods for a few Sundays before taking home a Buick and a six-figure check.
| Well-written coverage of most of what you need to know |      | I'm astonished by the abundance of IMO very ignorant reviews of this book. 4.5 stars might be the ideal rating, but given all the other excessively negative reviews, I opted for 5 rather than 4.This is a lucid, very well-written book, with plenty of sage advice. It introduces the concepts gently, but without excessive redundancy or hand-holding. The examples are well chosen, and illustrate their points (although in some places, there is a bit much duplication for my taste, but that too serves to illustrate the uniformity of STL). This book is clear, to the point, and covers most of the essential subjects amply (it's s bit weak on storage management, but as the authors mention, rarely will you need to write your own allocators). And it includes a minimal - but perfectly functional and adequate - reference section. The presentation is well organized, and procedes at a moderate pace. As one who has written a couple data structure libraries of his own, and who has taken to heart (in spite of C++ being a mess of a language, and templates being fundamentally a kludge) the sophistication of STL, I can safely say it incorporates many ideas that other programmers need to know, and probably do not appreciate fully. This book does a good job explaining some of the deeper motivations behind STL's design. As they say, a true master makes it look simple, and that's what both the authors of STL and this book achieve. It is true that the book is slightly out of date, but not with regard to the fundamentals. All of the key ideas you learn from this book apply to the latest revisions and any programmer worth his weight in, uh, salt can easily figure out the minor differences. I recommend this book to those who like insight, and succinct clarity, and who eschew the typical computer book, full of facts, hype, and verbosity, but little illumination, progressing by baby steps. This is a good solid book that will get you up to speed quickly on all the important ideas in STL, and many of its basic usage idioms.
| Good for Beginners and Intermediate Users |     | As an advanced programmer, I must say that I'm disappointed that the level of information provided is not as deep and meticulous as I had hoped.Additionally, both the index and the overall organization of the book leave much to be desired. The book, however, is a valuable reference for beginning and intermediate programmers. It explains the STL (Standard Template Library) from the ground up, explaining when, where, and why you would use any particular aspect of the STL, how to use the STL, and sufficient examples to understand correct syntax. This book also contains a detailed section of applying the STL to real-life programming examples. Furthermore, the book also contains a comprehensive reference guide for quick and easy access to pertinent information about STL aspects you frequently use and modestly comprehend. If you are a beginning or intermediate programmer, this book is worth adding to your collection.
|