[英]Storing elements in an unordered_set vs storing them in an unordered_map
假設我有以下User結構:
struct User {
string userId;
UserType userType; // UserType is just an enumeration
string hostName;
string ipAddress;
//and more other attributes will be added here
};
我需要存儲一組用戶記錄(大約10 ^ 5個用戶,也可以擴展得更高)。 如果我將它存儲為unordered_set或unordered_map,它的性能會更好嗎? Unordered_set在技術上與HashSet相同,unordered_map與HashMap相同,對吧? 使用常規集(有序)不是一個選項,因為當元素數量增加時插入和刪除將變得非常慢。
unordered_set <User> userRecords;
要么
unordered_map <string, User> userRecords; // string is the user ID.
我需要它在插入,刪除和通過其userId訪問特定用戶對象方面非常快。
我會選擇unordered_map
,因為我可以隨時獲得一個用戶,沒有任何額外的工作,而使用unordered_set
我沒有這個功能。
至於上述操作,速度幾乎相同。
由於unordered_set<>
不能讓您通過userId輕松訪問用戶,因此unordered_map<>
似乎是正確的選擇。
如果性能是一個重要的問題,那么您可能想要分析並查看哪個性能更好。 否則,請選擇最符合邏輯描述您要執行的操作的那個。 [由於只有100K的項目,我認為set
和map
還可能會有可接受的性能,如果您需要訂購其他地方]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.