Scott Meyers: Effective STL

Juli 17th, 2008 | Kategorien: C++ | Tags: , ,

Wenn sich mein Leben grad schon so nicht bloggenswert gibt, muss ich mir eben was anderes einfallen lassen. In diesem Fall dann eben ein Buchtipp. Ich muss dazu sagen, dass mir der Gedanke bei der Planung der C++ AG kam, für euch könnte das Buch tatsächlich ziemlich gut sein ;)

Wer noch nie was von Scott Meyers gehört hat und sich trotzdem als “erfahren” in der Programmierung mit C++ bezeichnet, leidet mit sehr großer Wahrscheinlichkeit an Selbstüberschätzung. “Effective STL” ist eine Art indirekter Nachfolger von “Effective C++”.  Und es ist meiner Meinung nach auch für Anfänger relativ gut zu verstehen. Meyers geht bei “Effective STL” zunächst davon aus, dass der Leser bisher größtenteils den Container Anteil der STL verwendet hat, ohne sich tiefergehend mit diesen zu beschäftigen.

Das Buch ist sehr übersichtlich gegliedert und umfasst die folgenden Sektionen:

  1. Containers
  2. vector and string
  3. Associative Containers
  4. Iterators
  5. Algorithms
  6. Functors, Functor Classes, Functions, etc.
  7. Programming with the STL

Es sollte also für jeden was dabei sein.

So wie einige Leute schlechten Code in “wtfs per minute” messen, messe ich Fachbücher an “ahas per minute”. Nun kommt Meyer diese Art der “Messung” ohne Frage entgegen, immerhin gliedert er seine Bücher in einzelne Tipps, die zwar teilweise untereinander verweisen, aber trotzdem alle für sich selbst stehen können. In “Effective STL” bietet Meyers 50 dieser Tipps.

Wie immer sind diese teilweise sehr einfach zu verstehen, aber man ist trotzdem dankbar für die gute Argumentation seitens Meyers. Er beleuchtet auch triviale Sachverhalte so ausführlich, dass sie einem einfach im Kopf bleiben müssen … Wer hört, dass die Zuweisung von Container über z.B. vector.assign() sinnvoller ist als über Schleifen, wird das möglicherweise wieder vergessen. Wem dann aber noch im Detail erklärt wird, was sich mit copy() und insert() so ohne weiteres anstellen lässt, der begreift nicht nur was assign() macht, sondern wir die STL funktioniert.

Und das ist es im wesentlichen was Meyers macht: er erklärt die “vorgesehene” Nutzung der STL. Die meisten Leute sind so froh über grundlegende Container wie vector<>, dass sie vergessen zu gucken was diese ausser der dynamischen Größe nochmal mehr können als Arrays. Und genau hier setzt Meyers an!

Für jemanden der sich mit der STL schon eingehend beschäftigt hat, bietet das Buch somit nur die Hälfte. Es untermauert das eigene Wissen sinvoll, ist aber gemessen an “ahas per minute” nicht unbedingt ein Spitzenreiter. Wenn man jedoch z.B. Willi heißt und grundsätzlich erstmal brachiale Ansätze wählt, wird man aus dem Staunen kaum mehr herauskommen ;)

Effective STL: 50 Specific Ways to Improve the Use of the Standard Template Library (Addison-Wesley Professional Computing)

No comments yet.