Как мне алфавит массив объектов, где строки являются полями в объектах

У меня есть имя класса, определенного в C ++:

class name{
public:
int range;
int num;
char type;
string n;
};

Как мне алфавит массив, который содержит имена на основе string n?

0

Решение

Одним из способов является перегрузка operator< сравнить его n с другим объектом (того же типа) n, Если name определяется его n переменная и n определяет его порядок, это может быть подходящим решением.

Для сортировки в библиотеке алгоритмов есть функции для этого.

Перегрузка будет выглядеть примерно так:

bool operator<(const name &o) const {
return n < o.n;
}

Также было бы неплохо определить остальные пять операторов сравнения. Равенство достаточно простое, тогда все остальное можно определить с точки зрения < а также ==

bool operator==(const name &o) const {
return n == o.n;
}
0

Другие решения

std::sort необязательно принимает предикат, который может быть функцией, лямбда-выражением или чем-то еще, что можно вызвать. Здесь вы можете просто написать простую функцию bool orderByName(name const& A, name const& B),

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector