Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint

Discussion

Programs that use the STL tend to have fewer explicit loops than non-STL programs, replacing low-level semantics-free loops with higher-level and better-defined abstract operations that convey greater semantic information. Prefer a “process this range” algorithmic mindset over “process each element” loopy thinking.

A primary benefit that algorithms and design patterns have in common is that they let us speak at a higher level of abstraction with a known vocabulary. These days, we don’t say “let many objects watch one object and get automatic notifications when its state changes;” rather, we say just “Observer.” Similarly, we say “Bridge,” “Factory,” and “Visitor.” Our shared pattern vocabulary raises the level, effectiveness, and correctness of our discussion. With algorithms, we likewise don’t say “perform an action on each element in a range and write the results somewhere;” rather, we say transform. Similarly, we say for_each, replace_if, and partition. Algorithms, like design patterns, are self-documenting. Naked for and while loops just don’t do when it comes to imparting any inherent semantic information about the purpose of the loop; they force readers to inspect their loop bodies to decipher what’s going on.


  

You are currently reading a PREVIEW of this book.

                                                                                                                    

Get instant access to over $1 million worth of books and videos.

  

Start a Free Trial


  
  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint