Cómo implementar el método de clasificación para una cola_c ++ con punteros
Mi cola de prioridad declarada como:
std::priority_queue<*MyClass> queue;
class MyClass {
bool operator<( const MyClass* m ) const;
}
no está ordenando los elementos en la cola.
¿Qué está mal? No me gustaría implementar una clase diferente (Comparar).
Resumen de la respuesta:
El problema es que las direcciones de puntero están ordenadas. La única forma de evitar esto es una clase que 'compara los punteros'.
Now implementado como:
std::priority_queue<*MyClass, vector<*MyClass>, MyClass::CompStr > queue;
class MyClass {
struct CompStr {
bool operator()(MyClass* m1, MyClass* m2);
}
}