Expression: invalid operator <

0

witam
mecze sie z takim o to problemem.Implementuje algorytm dijkstry wiec uzywam priority_queue dla klasy PQkrawedz. oczywiscie przeciazam operator < dla tej klasy w taki oto sposób.

bool PQKrawedz::operator<(const PQKrawedz *b){
		if(dl<b->dl) return true;
		else return false;
}
///klasa
class PQKrawedz{
public:
	bool operator<(const PQKrawedz *b);
	PQKrawedz(){};
	PQKrawedz(float d){dl=d;};
	float dl;
	vector<int> lista;///lista poprzednikow w grafie
};

No i wszystko działa ,prawie działa bo dla niektorych przypadków przy wrzucaniu do tej kolejki dostaje Debug assertion failed
Expression:invalid operator <

Wie ktoś o co tutaj chodzi??

0

A co tam robi wskaźnik w parametrze operatora? Według dokumentacji priority_queue korzysta domyślnie z funktora less, a ten może porównywać obiekty tylko tego samego typu. Więc nie ma mowy, żeby operator< był wywołany dla wskaźnika.

1 użytkowników online, w tym zalogowanych: 0, gości: 1