У меня похожая структура данных:
struct Data { std::string id; Blob data; };
Теперь я могу использовать std::map
для хранения структуры и поиска по идентификатору, но я искал способ добиться того же с помощью std::set
(поскольку мне действительно не нужно разделять идентификатор и структура).
std::set::find
, конечно, принимает тип ключа в качестве параметра, поэтому я мог бы сделать что-то вроде этого (с соответствующим конструктором):
set<Data> x; x.find(Data("some_id"));
Но я бы хотел избежать этого, если это возможно. Это потребовало бы иметь конструктор, который позволяет ID без данных, плюс я не очень люблю конструировать объект, просто использовать его в качестве ключа для поиска.
Итак, мой вопрос: есть ли лучший способ?