Geordnetes Array vs. Hash-Map in C++ (100 Elemente)C++

Programme in C++. Entwicklerforum
Anonymous
 Geordnetes Array vs. Hash-Map in C++ (100 Elemente)

Post by Anonymous »

Ich benötige Hilfe bei einem Code, den ich in C++ schreiben möchte.
Ich möchte ein Programm entwickeln, das CAN-Nachrichten empfängt und auf einer GUI visualisiert. Bei den betreffenden Nachrichten handelt es sich um etwa 100 unterschiedliche IDs, es handelt sich also nicht um ein großes CAN-Netzwerk. Ich habe bereits die Klasse „Message“, die die Nachrichtendaten in Signale kapselt.
Ich möchte eine Datenstruktur (wie ein Array) erstellen, die alle Nachrichtenklassen enthält, und wenn ich eine neue Nachricht vom CAN-Netzwerk erhalte, möchte ich auf die Klasse mit der passenden ID zugreifen, um den Inhalt der Nutzlast darin zu analysieren.
Ich habe derzeit zwei Optionen bezüglich der Datenstruktur, die die Nachrichten enthält:
  • ungeordnete Karte
  • ein normal geordnetes Array
Auf einem normal geordneten Array müsste ich jede Nachricht mit einer logarithmischen Suche durchsuchen, was etwa 6/7 Vergleiche erfordern würde, wenn man bedenkt, dass ich etwa 100 verschiedene IDs habe. Andererseits muss die ungeordnete Karte die Hash-Funktion der IDs berechnen, um den richtigen Nachrichtenindex zurückzugeben.
Die Frage ist: Ist es schneller, die Hash-Funktion zu berechnen oder eine logarithmische Suche im Array durchzuführen?
HINWEIS: Die Datenstruktur ist konstant und die Nachrichten-IDs sind uint32_t

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post