Por que a função sort () causa erro de compilação quando é usada para um conjunto de objetos de classe
Eu tentei sobrecarregar<
operador para classe e chamou a função da seguinte forma:
bool Edge::operator<(Edge const & e) const {
return this->GetCost() < e.GetCost();
}
em main ()
sort(edge_set.begin(),edge_set.end());
Além disso, eu também tentei escrever uma função de comparação simples para os objetos, definida no main.cpp e tentei invocarsort()
no entanto falhou novamente:
bool edge_comparator(Edge& e1, Edge& e2){
return (e1.GetCost() < e2.GetCost());
}
em main ()
sort(edge_set.begin(),edge_set.end(), edge_comparator);
Eu recebo um erro de compilação para aqueles que eu tentei. O que eu estou fazendo errado aqui? Como posso classificar o conjunto de objetos?