Мне нужно сохранить некоторые объекты в std: set (или любой другой вид таблицы поиска) и выполнить поиск по имени.Поиск объектов по имени на std :: set
Например, предположим, что у меня есть класс, как (псевдокод):
class Person
{
std::string mName;
int mAge;
... //etc
};
Я хотел бы сохранить это в контейнере и поиск объектов по названию. Я не могу вставить их в std :: set, потому что, насколько я знаю, я должен построить целый объект для поиска.
Мой второй, хотя и должен был использовать std :: map, например std :: map, но мне нужно будет дублировать имя для этого, и я не хочу дублировать ключ.
Есть ли способ сохранить этот тип объекта в std :: set (или любом другом контейнере) и выполнить поиск по ключу (а не к объекту)?
Спасибо
Возможно, это дублированный вопрос, но я не думаю, что выбранный вариант подходит. –
P.S. В C++ 14 вы сможете указать параметр 'find', который * не * точный тип заданного элемента. Подробнее см. Http://en.cppreference.com/w/cpp/container/set/find. –
Как вы определяете заказ для 'Person'? – Praetorian