Предположим, у меня есть следующая структура 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.