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
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
Mobile version