Benutzerdefinierte Datenstrukturen für einige der am häufigsten verwendeten Datenstrukturen in C ++
Der Zweck dieses Repo ist es, zu demonstrieren, wie Container und Datenstrukturen unter der Haube funktionieren. Die meisten APIs entsprechen der Standard -API, die in STL- und Boost -Bibliotheken gefunden wurde. Tatsächlich gibt es nur wenige wertvolle Verbesserungen und Ergänzungen, die die Standardbibliotheken bieten.
Die folgenden Datenstrukturen werden zum Zeitpunkt des Schreibens dieser Readme implementiert:
Mit Ausnahme von String und Trie , die typisch sind, werden alle anderen Datenstrukturen allgemein als Vorlagen implementiert, wodurch sie über verschiedene Datenatypen hinweg verwendet werden können.
Hinweis: Für nicht primitive Typen unter Verwendung spezieller Methoden innerhalb eines anwendbaren Datenstrukturarts müssen möglicherweise Spezialisierungen definiert werden
Für die Verwendung von Bibliothek finden Sie die Veröffentlichungen
Die meisten Datenstrukturen verwenden Vorlagen, wodurch die Notwendigkeit einer separaten Quelldatei beseitigt wird. Zum Beispiel kann Vector nur als Header verwendet werden. Die generierte Bibliothek ist nur für Typen mit nicht generischer Implementierung und einer separaten Quelldatei erforderlich. Zum Schreiben dieses ReadME benötigen Sie Ihre Anwendung, um mit libCustomDataStructures.so zu verknüpfen. Nur wenn Sie die Strukturen String und Trie -Daten verwenden.
Verwenden Sie zum Bau des Projekts das Build -Skript im Quellbaum mit -a -Option wie folgt:
./build.sh -a
Erzeugte Ausgabe reinigen und Artefakte mit der Option -c erstellen
./build.sh -c
Verwenden Sie die Option -h -Option mit dem Skript, um die Nutzungsdetails für andere Optionen wie Erstellungstyp und Generatorkonfiguration zu kennen
./build.sh -h
Die Einkaufswagen -App dient als Verwendungsreferenz der hier implementierten benutzerdefinierten Datenstrukturen.
Wenn das Schreiben von Code für Datenstrukturen und Algorithmen in C ++ und Dogfooding Sie wie ich zum Ticken bringt, werden Sie sicher gerne zu diesem Projekt beigetragen. Wenn Sie jemanden kennen, der sich für eine solche Arbeit interessiert, lassen Sie ihn wissen. Ich suche auf der Suche nach aufregenden Verbesserungen und Ergänzungen sowie nach einer kritischen Überprüfung der vorhandenen Implementierung.
Als potenzieller Mitwirkender sind Sie willkommen
Ich bin unter [email protected] für irgendetwas erreichbar