C++ und generisches Programmieren

Im Moment beschäftige ich mich gerade mit C++. Im Stroustrup (dem Stroustrup, also The C++ Programming Language. Special Edition.) bin ich inzwischen bei der Standardbibliothek angekommen, parallel habe ich angefangen, C++ Template Metaprogramming. Concepts, Tools, and Techniques from Boost and Beyond zu lesen – übrigens erstaunlich leicht lesbar. Diese C++ In-Depth-Serie scheint sehr empfehlenswert zu sein …

Vielleicht sollte ich noch kurz ausholen, wie ich zu C++ gekommen bin. Aus einem Problem bei Hennings 3D-Engine (Dreiecke – wenn möglich – zu Vierecken zusammenfassen, was auf einer geschlossenen Oberfläche immer möglich sei) entwickelte sich die Frage, wie man Matchings in nicht bipartiten Graphen findet. Des Problems Lösung: Der “Paths, Trees, and Flowers”-Algorithmus von Edmonds, Laufzeit: O(|V|*|E|*alpha(|V|*|E|)). Davon habe ich mir dann interessehalber mal das Paper besorgt, erschienen im Canadian Journal of Mathematics. Leider nicht online erhältlich, der Zeitschriftenband sollte aber in der Bibliothek jeder besseren Uni mit Mathe-Fakultät zu finden sein. Das Paper war dann irgendwie ziemlich langatmig, ich habe es immer noch nicht ganz durch :-| . Also habe ich mich auf die Suche nach einer Implementierung dieses Algorithmus gemacht. Fündig wurde ich bei der Boost Graph Library. Da ich in meinem Hiwi-Job Graphenalgorithmen implementiere, hat mich das natürlich gleich interessiert, und generisches Programmieren ist schon ziemlich hochgradig.

Auf meiner Vormerkungsliste in der Unibib (und langfristig auf meiner Anschaffungsliste) steht dann natürlich auch noch The Boost Graph Library: User Guide and Reference Manual. Und ich hoffe ja, hier im Institut auch mal statt dem Java-Rumgemurkse was mit der BGL machen zu können …

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>