¿Por qué la función sort () causa un error de compilación cuando se usa para un conjunto de objetos de clase?
Traté de sobrecargar<
operador para la clase y llamó a la función de la siguiente manera:
bool Edge::operator<(Edge const & e) const {
return this->GetCost() < e.GetCost();
}
en main ()
sort(edge_set.begin(),edge_set.end());
Además, también intenté escribir una función de comparación simple para los objetos, definida en main.cpp e intenté invocarsort()
, sin embargo volvió a fallar:
bool edge_comparator(Edge& e1, Edge& e2){
return (e1.GetCost() < e2.GetCost());
}
en main ()
sort(edge_set.begin(),edge_set.end(), edge_comparator);
Me sale un error de compilación por lo que he intentado. ¿Qué estoy haciendo mal aquí? ¿Cómo puedo ordenar el conjunto de objetos?