0201749629,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,buy,book,books,purchase,read,Scott Meyers
Books
Books
Sign In | View Cart Cart | Wish List | Help
ToysHealthPersonalAdultBaby
ToysHealthPersonalAdultBaby
Home & Garden
Checkout Now »
Cart Cart Cart
0 Items
Cart
100% Safe and Private!
Search     for:    

Books
Browse All Topics    New Releases    Coming Soon

All Topics > Computers & Internet > Programming > General
 
Browse similar subjects

Shipping

All orders
shipped by
airmail!

Click here for our
Shipping Policies!

 


Quotations

"For a true writer each book should be a new beginning where he tries again for something that is beyond attainment. He should always try for something that has never been done or that others have tried and failed. Then sometimes, with great luck, he will succeed."

  - Ernest Hemingway

(1898 - 1961),
in his Nobel Prize acceptance speech

 

 

Effective STL:
50 Specific Ways to Improve Your Use of the Standard Template Library

 
  by Scott Meyers
 
 
 Take A Trip Around The Word
Take A Trip Around The Word
Product
Take A Trip Around The Word
Take A Trip Around The Word
Take A Trip Around The Word
  
  
  
Take A Trip Around The Word
Take A Trip Around The Word 


ZIN Product Number: 10044365

 
eBay (last 12 months)
Auctions: 22
Price Range: $0.06 - 0.09
 
Craigslist (last 12 months)
Classifieds: 23
Price Range: $0.09 - 0.02
 
Amazon Used (last 12 months)
Auctions: 91
Price Range: $0.09 - 0.06
 
ZooScape (last 12 months)
Auctions: 0
Price Range: N/A
 
 
Google listings (non-affiliate) 120
MSN listings (non-affiliate) 20
Yahoo listings (non-affiliate) 61
 


 FastFind Line
Inverse Black Hole
By the Numbers
By the Numbers
Cover To Cover
Cover to Cover
Reader's Corner
Reader's Corner
Behind the Pen
Behind the Pen
Table of Contents
Table of Contents
Related Reading
Related Reading
Inverse Black Hole
FastFind Line
 
 
By The Numbers
 Product Details

  Format: Paperback, 288 pages
  Publisher: Addison-Wesley
  ISBN: 0201749629
  Release Date: Jan 1, 1996

  Average Reader Review: One Thumb UpOne Thumb UpOne Thumb UpOne Thumb UpOne Thumb Up (Based on 1 review.)


 
 
Cover to Cover
 In Brief
C++'s Standard Template Library is revolutionary, but learning to use it well has always been a challenge. Until now. In this book, best-selling author Scott Meyers (Effective C++, and More Effective C++) reveals the critical rules of thumb employed by the experts--the things they almost always do or almost always avoid doing--to get the most out of the library.

Other books describe what's in the STL. Effective STL shows you how to use it. Each of the book's 50 guidelines is backed by Meyers' legendary analysis and incisive examples, so you'll learn not only what to do, but also when to do it--and why.

Highlights of Effective STL include:
  • Advice on choosing among standard STL containers (like vector and list), nonstandard STL containers (like hash_set and hash_map), and non-STL containers (like bitset).

  • Techniques to maximize the efficiency of the STL and the programs that use it.

  • Insights into the behavior of iterators, function objects, and allocators, including things you should not do.

  • Guidance for the proper use of algorithms and member functions whose names are the same (e.g., find), but whose actions differ in subtle (but important) ways.

  • Discussions of potential portability problems, including straightforward ways to avoid them.
Like Meyers' previous books, Effective STL is filled with proven wisdom that comes only from experience. Its clear, concise, penetrating style makes it an essential resource for every STL programmer.


 
 
 From The Publisher
"This is Effective C++ volume three—it's really that good."
—Herb Sutter, independent consultant and secretary of the ISO/ANSI C++ standards committee
"There are very few books which all C++ programmers must have. Add Effective STL to that list."
—Thomas Becker, Senior Software Engineer, Zephyr Associates, Inc., and columnist, C/C++ Users Journal


C++'s Standard Template Library is revolutionary, but learning to use it well has always been a challenge. Until now. In this book, best-selling author Scott Meyers (Effective C++, and More Effective C++) reveals the critical rules of thumb employed by the experts—the things they almost always do or almost always avoid doing—to get the most out of the library.

Other books describe what's in the STL. Effective STL shows you how to use it. Each of the book's 50 guidelines is backed by Meyers' legendary analysis and incisive examples, so you'll learn not only what to do, but also when to do it—and why.

Highlights of Effective STL include:
  • Advice on choosing among standard STL containers (like vector and list), nonstandard STL containers (like hash_set and hash_map), and non-STL containers (like bitset).
  • Techniques to maximize the efficiency of the STL and the programs that use it.
  • Insights into the behavior of iterators, function objects, and allocators, including things you should not do.
  • Guidance for the proper useof algorithms and member functions whose names are the same (e.g., find), but whose actions differ in subtle (but important) ways.
  • Discussions of potential portability problems, including straightforward ways to avoid them.


Like Meyers' previous books, Effective STL is filled with proven wisdom that comes only from experience. Its clear, concise, penetrating style makes it an essential resource for every STL programmer.


 
 
 Foreword
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,http://www.aristeia.com/BookErrata/estl1e-errata.html.

If you'd like to be notified when I make changes to this book, I encourage you to join my mailing list. I use the list to make announcements likely to be of interest to people who follow my work on C++. For details, consult http://www.aristeia.com/MailingList/.

SCOTT DOUGLAS MEYERS
STAFFORD, OREGON
http://www.aristeia.com/
APRIL 2001


 
 
The Reader's Corner
  Product Review
 
 Number of Reviews: 1     Average Rating: One Thumb UpOne Thumb UpOne Thumb UpOne Thumb UpOne Thumb Up

Excellent - Scott Meyers at his best
   One Thumb UpOne Thumb UpOne Thumb UpOne Thumb UpOne Thumb Up

-- A reviewer, a C++ programmer, August 29, 2001

Also Recommended: Effective C++, More Effective C++


 
 
Behind the Pen
 Accreditation
Scott Meyers is one of the world's foremost authorities on C++ software development. He is a former columnist for C++ Report, a frequent contributor to C/C++ Users Journal and Dr. Dobb's Journal, and a consultant to clients worldwide. A member of the Advisory Boards for NumeriX LLC and InfoCruiser Inc., he has a Ph.D. in Computer Science from Brown University.

 
 
Table of Contents
 
Preface
Acknowledgments
Introduction1
Ch. 1Containers11
Item 1Choose your containers with care11
Item 2Beware the illusion of container-independent code15
Item 3Make copying cheap and correct for objects in containers20
Item 4Call empty instead of checking size() against zero23
Item 5Prefer range member functions to their single-element counterparts24
Item 6Be alert for C++'s most vexing parse33
Item 7When using containers of newed pointers, remember to delete the pointers before the container is destroyed36
Item 8Never create containers of autoöptrs40
Item 9Choose carefully among erasing options43
Item 10Be aware of allocator conventions and restrictions48
Item 11Understand the legitimate uses of custom allocators54
Item 12Have realistic expectations about the thread safety of STL containers58
Ch. 2vector and string63
Item 13Prefer vector and string to dynamically allocated arrays63
Item 14Use reserve to avoid unnecessary reallocations66
Item 15Be aware of variations in string implementations68
Item 16Know how to pass vector and string data to legacy APIs74
Item 17Use "the swap trick" to trim excess capacity77
Item 18Avoid using vector79
Ch. 3Associative Containers83
Item 19Understand the difference between equality and equivalence83
Item 20Specify comparison types for associative containers of pointers88
Item 21Always have comparison functions return false for equal values92
Item 22Avoid in-place key modification in set and multiset95
Item 23Consider replacing associative containers with sorted vectors100
Item 24Choose carefully between map::operator[actual symbol not reproducible] and map::insert when efficiency is important106
Item 25Familiarize yourself with the nonstandard hashed containers111
Ch. 4Iterators116
Item 26Prefer iterator to constöiterator, reverseöiterator, and constöreverseöiterator116
Item 27Use distance and advance to convert a container's constöiterators to iterators120
Item 28Understand how to use a reverseöiterator's base iterator123
Item 29Consider istreambuföiterators for character-by-character input126
Ch. 5Algorithms128
Item 30Make sure destination ranges are big enough129
Item 31Know your sorting options133
Item 32Follow remove-like algorithms by erase if you really want to remove something139
Item 33Be wary of remove-like algorithms on containers of pointers143
Item 34Note which algorithms expect sorted ranges146
Item 35Implement simple case-insensitive string comparisons via mismatch or lexicographicalöcompare150
Item 36Understand the proper implementation of copyöif154
Item 37Use accumulate or foröeach to summarize ranges156
Ch. 6Functions, Functor Classes, Functions, etc162
Item 38Design functor classes for pass-by-value162
Item 39Make predicates pure functions166
Item 40Make functor classes adaptable169
Item 41Understand the reasons for ptröfun, memöfun, and memöfunöref173
Item 42Make sure less means operator<177
Ch. 7Programming with the STL181
Item 43Prefer algorithm calls to hand-written loops181
Item 44Prefer member functions to algorithms with the same names190
Item 45Distinguish among count, find, binaryösearch, loweröbound, upperöbound, and equalörange192
Item 46Consider function objects instead of functions as algorithm parameters201
Item 47Avoid producing write-only code206
Item 48Always #include the proper headers209
Item 49Learn to decipher STL-related compiler diagnostics210
Item 50Familiarize yourself with STL-related web sites217
Bibliography225
App. ALocales and Case-Insensitive String Comparisons229
App. BRemarks on Microsoft's STL Platforms239
Index245


 
 
Related Reading
 Find similiar books in these subject areas:

All Topics > Computers & Internet > Programming > General
All Topics > Computers & Internet > Programming > Languages & Tools > C & C++ > General
All Topics > Computers & Internet > General


 
 
 People like you also bought:

Modern C++ Design: Generic Programming and Design Patterns Applied (C++ in-Depth Series), by Andrei Alexandrescu

Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions (C++ in-Depth Series), by Herb Sutter

More Effective C++: 35 New Ways to Improve Your Programs and Designs, by Scott Meyers

STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library 2ND, by David R. R. Musser

More Exceptional C++: 40 Engineering Puzzles, Programming Problems and Solutions (C++ in-Depth Series), by Herb Sutter

Effective C++ : 50 Specfic Ways to Improve Your Programs and Designs, Second Edition, by Scott Meyers

The C++ Standard Library: A Tutorial and Reference, by Nicolai M. Josuttis

 
 
 Keywords
C++ (Computer program language, Standard template library, Computer Programming Languages, Computer Bks - Languages / Programming, Computers, Programming Languages - C++, Programming - General, Programming Languages - General, C++ (Computer program language)

 
 
 FastFind Line
Inverse Black Hole
By the Numbers
By the Numbers
Cover To Cover
Cover to Cover
Reader's Corner
Reader's Corner
Behind the Pen
Behind the Pen
Table of Contents
Table of Contents
Related Reading
Related Reading
Inverse Black Hole
FastFind Line
 
 


Make $1 per sale -
Link to ZooScape.com!


About Us   |   Our Policies   |   Your Cart   |   Contact Us   |   Help
ZooScape.com

Copyright 1995 - 2009 - ZooScape.com
 
ZooScape.com