Qualcuno sa di un'implementazione tabella/mappa hash C/C++ che non ha allocare dinamicamente memoria? Sto lavorando su un sistema embedded che non ha una libreria standard & senza heap (a meno che non voglia scrivere/portarne uno).Implementazione tabella/mappa hash senza allocazioni dinamiche
risposta
I termini che stai cercando sono "Open affrontare" o "hashing chiuso". Vedi http://en.wikibooks.org/wiki/Data_Structures/Hash_Tables#Open_addressing e http://en.wikipedia.org/wiki/Open_addressing
Non so una specifica implementazione, però. Scusate.
Buoni collegamenti, tuttavia, potrebbero essere utili. –
In realtà, le belle foto di quell'articolo mi hanno fatto capire, potrei anche fare concatenamento se implementassi una lista freelide da un archivio di nodi (probabilmente solo una matrice statica). Ma mi piace la coerenza di cache dell'indirizzamento aperto a scansione lineare. –
- 1. Alternative a allocazioni dinamiche in progetti di sicurezza critici (C)
- 2. Implementazione C# di FNV Hash
- 3. Implementazione Python di Jenkins Hash?
- 4. Utilizzo di allocazioni dinamiche in un software mission-critical/life-critical
- 5. Come implementare una tabella hash di dimensioni dinamiche?
- 6. CUDA - Implementazione della mappa hash del dispositivo?
- 7. Allocazioni in nuovo TLAB vs allocazioni all'esterno TLAB
- 8. traccia allocazioni memoria C++
- 9. Percorsi di backbone senza hash?
- 10. Implementazione NotifyPropertyChanged senza fili magici
- 11. Implementazione di hash e array immutabile in JavaScript?
- 12. Ricerca di una buona implementazione della tabella hash in C
- 13. Uso del doppio puntatore nel kernel Linux Implementazione lista hash
- 14. matrici dinamiche: utilizzando realloc() senza perdite di memoria
- 15. Change hash senza innescare eventi Sammy
- 16. Modifica url tramite JavaScript (senza tag hash)
- 17. Change hash senza ricarica in jQuery
- 18. Objective-C: dichiarazione @property senza implementazione (@synthesize)
- 19. Implementazione di RSA senza allocazione dinamica
- 20. Impossibile ottenere allocazioni su Android 4.4.4
- 21. Evitare allocazioni di oggetti in onDraw() (StaticLayout)?
- 22. L'iteratore di lista causa allocazioni di heap?
- 23. Perché GC.GetTotalMemory() segnala allocazioni di memoria enormi?
- 24. Funzioni dinamiche C++ e FULLY
- 25. Struts 2 variabili dinamiche
- 26. Rails4: Come consentire un hash con le chiavi dinamiche nei parametri?
- 27. Regole aziendali dinamiche in un'applicazione Web
- 28. Python definire le funzioni dinamiche
- 29. Tabelle hash concatenate e tabelle hash con indirizzo aperto
- 30. Django pbkdf2_sha256 JS implementazione
Non sarebbe più facile trovare un'implementazione di allocazione dell'heap per embedded rispetto a una hash/mappa senza allocazione dinamica della memoria? – dtech
Se è sempre possibile liberare la memoria allocata nell'ordine esatto opposto della sua allocazione (ad esempio 'alloc a, b, c',' free c, b, a'), il gestore di memoria/heap può essere semplice come pochi dozzina di linee di codice che implementano una struttura di dati dello stack. –
È molto più semplice implementare un heap, ma se questa è l'unica cosa di cui ho bisogno, potrebbe non esserlo. E una memoria di stack significa che non sarei in grado di rimuovere gli articoli in ordine, il che potrebbe essere un problema. –