class MyInteger
{
public:
MyInteger() { }
MyInteger(int val) { value = val }
int value;
bool operator<(const MyInteger* target) const
{
return value < target->value;
}
Above is an example MyInteger
class with the <
operator overloaded. I am using a priority_queue
of MyInteger*
but it doesn't seem to recognize the overloaded operator, which results in the elements never being ordered.
std::priority_queue<MyInteger*> myInts;
MyInteger integer1 = MyInteger(1);
MyInteger integer5 = MyInteger(5);
MyInteger integer3 = MyInteger(3);
myInts.push(&integer1);
myInts.push(&integer5);
myInts.push(&integer3);
// result is same order they went in
Is it possible to use operator overloading for object pointers? Does it mean I will have to create my own functor to be used instead?