Обычно вам нужно перегрузить <, но если в структуре есть другие элементы, по которым вы, возможно, захотите когда-нибудь отсортировать, это не имеет смысла делать это.Вы должны написать отдельную функцию, которая принимает два параметра вашей структуры и сравнивает их по фамилии, возвращая true, если первое должно предшествовать второму, иначе false.Затем передайте эту функцию в std :: sort.Примерно так: </p>
bool compare_by_last_name(const MyStruct & lhs, const MyStruct & rhs)
{
return lhs.last_name < rhs.last_name;
}
// later
vector<MyStruct> v;
// put some elements in v
std::sort(v.begin(), v.end(), compare_by_last_name);
Вы заметите, что я проигнорировал ваше утверждение «Использование бинарного дерева поиска», потому что я не совсем понимаю, что вы имеете в виду, но это, вероятно, не имеет значения.Вы сделали свой собственный класс контейнера или что-то?