Хранение элементы в unordered_set и их сохранение в 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.

6
задан all_by_grace 5 October 2011 в 13:54
поделиться