#c #data-structures
#c #структуры данных
Вопрос:
Я хочу хранить данные, которые выглядят следующим образом:
NAME SURNAME BIRTHDATE
например:
{{"Anna", "Smith", "16/06/1965"}
{"Bob", "Smith", "26/07/1982"}}
Я думаю, что я могу сам создать такую структуру:
struct PEOPLE {
string name;
string surname;
string birthdate;
};
Но есть ли какая-либо структура данных, которую я могу использовать для этой цели? Например, где имя — это ключ, а фамилия и даты рождения — значения?
Комментарии:
1.
std::map<std::string, std::pair<std::string, std::string>>
,std::map<std::string, PEOPLE>
?2. Каким должен быть ваш «уникальный ключ»? Подходите к этому как к проблеме с базой данных.
3. Кроме того, вам следует прочитать «Ложь, которую программисты считают именами » Патрика Маккензи .
Ответ №1:
У вас всегда может быть что-то вроде:
using Key = std::string;
using Value = std::pair<std::string, std::string>;
и используйте его как:
using HumanBeing = std::pair<Key, Value>;
или:
std::map<Key, Value>
Конечно, псевдонимы не так уж необходимы 🙂
Ответ №2:
Вы могли бы попробовать использовать map или multimap с name
ключом as и a struct
(с surname
, birthdate
, и все, что вы хотите в нем) в качестве значения, но обратите внимание, что, как бы вы это ни делали, в вашем приложении вы, вероятно, захотите, чтобы ключ был уникальным для каждой записи, и name
, возможно, этого не будет.