REVIEW - C/C++ Annotated Archives


C/C++ Annotated Archives


Art Friedman



McGraw-Hill Osborne Media (1999)




Francis Glassborow


February 2000



Herb Schildt contributed two chapters and a Foreword to this book. Let me quote the first two sentences of the latter:

This is a book by C/C++ programmers for C/C++ programmers. In its 16 chapters you will find some of the most interesting, intriguing, and useful code available anywhere.

Well the first sentence is at best only 50% correct because there is absolutely nothing in this book for a C programmer, though I can believe that some of it is C++ written by a C programmer. The second sentence probably says more about the writer than about the source code in the book.

Chapter 1 (by Art Friedman) is titled 'Sorting'. Now any respectable C++ programmer knows that all the standard tools for sorting have been provided by the algorithm section of the STL (which this book ignores until chapter 15). Knowing this you might expect this chapter to introduce the various sorts provided by the STL and then proceed to cover some others that would be useful in special circumstances. You would be sadly disappointed. The chapter starts with a 'Bubble Sort' (just about the worst variation, where no attempt is made to track the range of the list still unsorted). The author says nothing about when this algorithm might be useful (it is the optimum algorithm for short lists that are almost always already sorted, and only have a single miss-placed element most of the rest of the time).

His next offering is for a selection sort, another very poor algorithm (anyone know of an example where it performs well?). He follows with two examples of a Quicksort and concludes with a Mergesort. He never covers the problems of stable sorting, nor the problem of sorting in cases where the data is toolarge to reside in main memory. In other words the chapter is completely useless to any programmer who has even a rudimentary grasp of using the resources that come with your C++ compiler (an implementation of the Standard C++ Library).

Chapter 2 (linked lists), 3 (binary trees) and 4 (hash tables and sparse arrays) - all by Art Friedman, suffer in similar ways. The author completely ignores the existence of the STL and so none of his designs are compatible with STL algorithms.

No doubt if you look hard enough you may find something useful in this book but I doubt that it is worth the effort. If you would like some extras to add to what is already in the Standard C++ Library you could do much worse than visit you will find material being developed by World class experts (mostly members of the Library group from WG21&J16). These extras are designed to work with what you already have (and I guess quite a bit will go into the next C++ standard).

In conclusion, give this book a miss, there is (much) better available elsewhere.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED

By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED

Settings can be changed at any time from the Cookie Policy page.