============================ Antworten und Beispiellösung [TOC] ============================ Zu den Fragen ============= * Für die Knoten benötigen wir `std::shared_ptr`. Sonst können wir nicht ohne weiteres mit einem Zeiger all die verketteten Knoten zu einem Hash-Wert durchlaufen. Aber auf die Bucket-Table können wir mit einem Array-basierten `std::unique_ptr` verweisen. * Wegen dem `std::unique_ptr` ist die Hash-Tabelle nicht mehr kopierkonstruierbar, wohl aber _move constructible_. * Bei einem Objekt ist darauf zu achten, dass der Schlüssel unveränderlich ist, da sich natürlich nicht der Hash-Wert eines Objekts in der Hash-Tabelle verändern darf: ---- CODE (type=cpp) ------------------------------------------------------- using Object = std::pair; ---------------------------------------------------------------------------- Beispiellösung ============== :import: session08/step01/Hash.hpp ---- SHELL (path=session08/step01,hostname=theon) -------- g++ -Wall -o testit testit.cpp valgrind ./testit doc:index back -> doc:session08/page01 next -> doc:session08/page03