Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
Editorial Reviews
Amazon.com
Written for the intermediate or advanced C++ programmer, renowned C++ expert Scott Meyers provides essential techniques for getting more out of the Standard Template Library in Effective STL, a tutorial for doing more with this powerful library.
STL is a hugely powerful feature of today's C++, but one with a well-earned reputation for complexity. The book is organized into 50 tips that explore different areas of the STL. Besides providing a list of dos and don'ts, Meyers presents a lot of background on what works and what doesn't with STL. Each tip is demonstrated with in-depth coding samples, many of which make use of two-color printing to highlight the most important lines of code. (Advanced developers will enjoy Meyers's in-depth explanations, while those who are in a hurry can skip ahead to the recommended tip itself.)
A good part of this book involves using containers, like vectors and maps, which are built into STL. (Besides the standard built-in containers, the author also highlights recent additions to STL like B-trees, which are available as extensions from other vendors.) You'll learn the best ways to allocate, add, change, and delete items inside containers, including associative containers like maps. You'll also learn to avoid common pitfalls, which can result in writing code that is slow or just plain wrong.
Other areas covered in Effective STL cover getting the most out of the 100-plus STL algorithms that are bundled with this library. Meyers shows you how to choose the correct algorithm for sorting and other functions. (Even advanced developers will learn something here.) Sections on using function objects (called functors) round out the text. Meyers shows you when these classes make sense and the best ways to implement them. Besides specific tips, you'll get plenty of general programming advice. A useful appendix shows the limitations of STL as implemented in Microsoft Visual C++ 6.0 and how to overcome them.
Overall, Effective STL is a really invaluable source of programming expertise on an essential aspect of today's C++ for anyone who is using--or planning to use--STL in real production code. It is quite simply a must-have. --Richard Dragan
Topics covered:
- Introduction to advanced Standard Template Library (STL) programming techniques
- 50 tips and best practices for STL illustrated with sample tutorial code
- Choosing containers
- Efficient copying of elements inside containers
- Removing, erasing, and cleaning up items from containers
- Using custom allocators with STL containers
- Thread safety with STL
- Tips for programming with the STL vector and string classes (including reserving memory and calling legacy C/C++ code)
- Tips for associative containers (including comparing items, sorted vectors, and non-standard enhancements to STL)
- Tips for selecting and using STL iterator classes
- STL algorithms (including sorting, removing, and comparing items)
- Using functors with STL
- General tips for STL programming (including advice for choosing algorithms and understanding compiler diagnostic messages)
- String locales
- Overcoming STL imitations in Microsoft Visual C++ 6.0
Book Description
It came without ribbons! It came without tags! It came without packages, boxes or bags! -- Dr. Seuss, How the Grinch Stole Christmas! , Random House, 1957 I first wrote about the Standard Template Library in 1995, when I concluded the final Item of More Effective C++ with a brief STL overview. I should have known better. Shortly thereafter, I began receiving mail asking when I'd write Effective STL . I resisted the idea for several years. At first, I wasn't familiar enough with the STL to offer advice on it, but as time went on and my experience with it grew, this concern gave way to other reservations. There was never any question that the library represented a breakthrough in efficient and extensible design, but when it came to using the STL, there were practical problems I couldn't overlook. Porting all but the simplest STL programs was a challenge, not only because library implementations varied, but also because template support in the underlying compilers ranged from good to awful. STL tutorials were hard to come by, so learning "the STL way of programming" was difficult, and once that hurdle was overcome, finding comprehensible and accurate reference documentation was equally difficult. Perhaps most daunting, even the smallest STL usage error often led to a blizzard of compiler diagnostics, each thousands of characters long, most referring to classes, functions, or templates not mentioned in the offending source code, almost all incomprehensible. Though I had great admiration for the STL and for the people behind it, I felt uncomfortable recommending it to practicing programmers. I wasn't sure it was possible to use the STL effectively. Then I began to notice something that took me by surprise. Despite the portability problems, despite the dismal documentation, despite the compiler diagnostics resembling transmission line noise, many of my consulting clients were using the STL anyway. Furthermore, they weren't just playing with it, they were using it in production code! That was a revelation. I knew that the STL featured an elegant design, but any library where programmers are willing to endure portability headaches, poor documentation, and incomprehensible error messages has a lot more going for it than just good design. For an increasingly large number of professional programmers, I realized, even a bad implementation of the STL was preferable to no implementation at all. Furthermore, I knew that the situation regarding the STL would only get better. Libraries and compilers would grow more conformant with the Standard (they have), better documentation would become available (it has -- check out the bibliography beginning on page 297), and compiler diagnostics would improve (for the most part, we're still waiting, but Item 49 offers suggestions for how to cope in the meantime). I therefore decided to chip in and do my part for the burgeoning STL movement, and this book is the result: 50 specific ways to improve your use of C++'s Standard Template Library. My original plan was to write the book in the second half of 1999, and with that thought in mind, I put together an outline. But then I paused and changed course. I suspended work on the book, and I developed an introductory training course on the STL, which I then taught several times to different groups of programmers. About a year later, I returned to the book, significantly revising the outline based on my experiences with the training course. In the same way that my Effective C++ has been successful by being grounded in the problems faced by real programmers, it's my hope that Effective STL similarly addresses the practical aspects of STL programming -- the aspects most important to professional developers. I am always on the lookout for ways to improve my understanding of C++. If you have suggestions for new guidelines for STL programming or if you have comments on the guidelines in this book, please let me know. In addition, it is my continuing goal to make this book as accurate as possible, so for each error in this book that is reported to me -- be it technical, grammatical, typographical, or otherwise -- I will, in future printings, gladly add to the acknowledgments the name of the first person to bring that error to my attention. Send your suggested guidelines, your comments, and your criticisms to estl@aristeia.com . I maintain a list of changes to this book since its first printing, including bug-fixes, clarifications, and technical updates. The list is available at the Effective STL Errata web site, [A
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library,Scott Meyers,Addison-Wesley Professional,0201749629,C++ (Computer program language,C++ (Computer program language),Computer Bks - Languages / Programming,Computer Books: General,Computer Programming Languages,Computers,Programming - General,Programming Languages - C++,Standard template library,Computers / Programming Languages / C++
Mathematics Book
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
Books:
- Everybody Belongs: Changing Negative Attitudes Toward Classmates with Disabilities (Critical Education Practice)
- Excel Charts
- Flashing on the Sixties
- Food in the Ancient World (Food through History)
- Game Work : Language, Power, and Computer Game Culture (Albma Rhetoric Cult & Soc Crit)
- Grossed-Out Surgeon Vomits Inside Patient!: An Insider's Look at the Supermarket Tabloids
- Growing Up Girls: Popular Culture and the Construction of Identity
- Hairdos
- Hammer of the Gods
- Headpress 15 : War in Heaven (Headpress)
Books
books
Books
- New Hotel Design
- The Successful Business Plan: Secrets & Strategies (Psi Successful Business Library)
- Black Gold: The Lost Archives of Jimi Hendrix
- An Introduction to Game Theory
- The Genius of the Common Law (Columbia University Lectures. Carpentier Lectures, 11.)
- Statistical Methods in the Biological & Health Sciences
- Spinning Tops : A Course on Integrable Systems (Cambridge Studies in Advanced Mathematics)
- The Red Thumb Mark
- The Things That Are Not There
- The Healthy Oven Baking Book : Delicious reduced-fat deserts with old-fashioned flavor
- The Yarn Girls' Guide to Knits for Older Kids : Quick-to-Knit Patterns for Four- to Ten-Year-Olds
- The Official Freebies for Kids: Something for Nothing or Next to Nothing! (Official Freebies for Kids)
- Untold Love Story: Marie Antoinette and Count Fersen
- The Wide World of Suzie Mallard
- The Student's Pilot's Flight Manual: From First Flight to Private Certificiate, Ninth Edition
- German Books: Deutsche Bücher ~ 7
- Ihr Hobby, Beagle
- Solingen mit Haan
- The Successful Business Plan: Secrets and Strategies