Gibt es eine C-Bibliotheksversion von C++ std :: map in einer Standardbibliothek?C-Version von C++ std :: map
Antwort
std::map
ist keine Hash-Tabelle. Daher mein Vorschlag: Red-Black Tree C Code
Die folgenden C-Dateien implementieren ausgewogene binäre Bäume mit dem Rot-Schwarz-Paradigma. Ich habe diese Funktionen sehr allgemein geschrieben, so dass der Schlüssel überhaupt etwas sein kann. Jeder Knoten des ausgeglichenen Binärbaums muss einen Schlüssel und einen Zeiger auf Informationen enthalten. Der Benutzer definiert den Datentyp des Schlüssels und stellt eine Vergleichsfunktion für die Schlüssel bereit. Die Info kann auch ein beliebiger Datentyp sein.
(Haftungsausschluss: habe es selbst nicht ausprobiert.)
In die Standardbibliothek ist nichts eingebaut, aber uthash erfüllt möglicherweise Ihre Anforderungen.
Die C-Standardbibliothek unterstützt ein solches Äquivalent nicht. Eine häufig verwendete C-Bibliothek ist jedoch GLib aus dem GNOME-Projekt. Insbesondere könnte das GLib Hash Tables was Sie suchen.
Hat sich die Frage geändert, oder hast du einfach nur geblättert, um nicht zu glauben, dass irgendjemand eigentlich einen Baum und nicht einen Hash hätte? ;-) Der GLib Baum ist hier: http://library.gnome.org/devel/glib/stable/glib-Balanced-Binary-Trees.html –
- 1. C++: Std :: Map-Sortierung
- 2. Persistenz von std :: map in C++
- 3. C++ std :: map vergleichen Methode
- 4. Kopiere std :: map zu std :: setze in C++
- 5. C++ std :: map oder std :: set - effizient Duplikate einfügen
- 6. Verwendung std :: reference_wrapper in std :: map
- 7. C++ Std :: Map Frage über Iterator Reihenfolge
- 8. abrufen Zufallsschlüsselelement für std :: map in C++
- 9. std :: map mit std :: weak_ptr key
- 10. Warum einfügen von Std :: Map nicht aktualisieren? [C++]
- 11. Was ist das Null-Schlüsselwort von C++ std :: map?
- 12. Fest auf C++ template - abgeleitet von std :: map
- 13. Warum löscht std :: map < std::map > Speicher nicht?
- 14. boost :: lambda std :: map
- 15. HowTo sortieren std :: map?
- 16. Deklarieren std :: map Konstanten
- 17. Automatische Population von std :: map mit Funktionszeigern
- 18. Wie ist std :: langsamer als std :: map?
- 19. Verwenden von Std Shared_ptr als Std :: Map Key
- 20. Speichern von lokalen Variablen in Std :: Map
- 21. Seltsam Verwendung von std :: map Konstruktor
- 22. Muss std :: map initialisiert werden?
- 23. Einsatzdaten in einem std :: map
- 24. Wie in std :: map einzufügen?
- 25. So sortieren Sie C++ - Map-Schlüssel mit std :: greater?
- 26. std :: map Standardwert für Aufzählungen
- 27. mit BOOST_FOREACH mit Std :: Map
- 28. Fehler std :: map mit :: at
- 29. Warum verwendet C++ std :: map :: operator [] nicht inplace new?
- 30. C++ Verweise auf Werte in std :: map speichern
Haben Sie * müssen * C zu benutzen? – GManNickG
@GMan - Was ist los mit C? –
Es hat keine Karte. –