Перегрузка оператора внутри структуры в cpp
Я читал Минимальное остовное дерево - Крускал с непересекающимися множествами объединение - конкурентные алгоритмы программирования[^] и я запутался в приведенной ниже части перегрузки оператора,используемой в приведенной выше реализации, здесь мы можем сортировать без определения компаратора.
Как происходит сортировка по двум структурам без определения какого-либо компаратора,как компилятор узнает, на каком основании у него есть два вида?
Когда мы собираемся использовать, когда Е1&ЛТ;Е2 тогда кто позвонит оператор перегружен в <предварительно> В+&ЛТ;/пре&ГТ;что это Е1 или Е2.
предположим, что компаратор по умолчанию сортировки STL использует что-то вроде этого
в <предварительно&ГТ; Е1&ЛТ;Е2 &ЛТ;/пре&ГТ; (Е1 и Е2 имеют тип кромки), тогда как параметры, передаваемые `логический оператор&ЛТ;(край как const&амп; другие) внутри структуры.
Что я уже пробовал:
struct Edge { int u, v, weight; bool operator<(Edge const& other) { return weight < other.weight; } }; vector<Edge> edges; sort(edges.begin(), edges.end());