Speichern von Elementen in einer unordered_set vs Speicherung in unordered_map

Angenommen ich habe die folgenden Benutzer struct:

struct User { 
    string userId; 
    UserType userType; //UserType is just an enumeration
    string hostName;
    string ipAddress;
    //and more other attributes will be added here

};

und brauche ich zum speichern einer Sammlung von Benutzer-Datensätze (rund 10^5 Nutzer, höher skaliert werden kann ). Wäre es besser in der Leistung, wenn ich speichern Sie es als eine unordered_set oder unordered_map? Unordered_set ist technisch das gleiche wie HashSet, und unordered_map ist das gleiche wie HashMap, richtig? Mit einem regulären Satz (bestellt) ist keine option, da einfügen und löschen wird sehr langsam, wenn die Anzahl der Elemente zu erhöhen.

unordered_set <User> userRecords;

ODER

unordered_map <string, User> userRecords; //string is the user ID.

Ich brauche es sehr schnell sein in Bezug auf die einfügen, löschen und Zugriff auf einen bestimmten Benutzer Objekt durch seine userId.

InformationsquelleAutor all_by_grace | 2011-10-05

Schreibe einen Kommentar