#include #include #include #include #include #include #include #include #include #include class City { public: /** \brief adjacency list of this city */ std::vector Adj; /** \brief redecessor pointer */ City* p; /** \brief city value */ double d; /** \brief name of this city */ std::string name; /** \brief constructor with the city name as argument */ City(std::string name) { this->name=name; d=DBL_MAX; p=NULL; } /** \brief get (cost) value */ double getValue() const { return d; } }; struct CompareMethod { bool operator()(const City &a, const City &b) const { // Be sure to implement this function as "strictly less than" std::cout << "Ketchup!" << std::endl; return a.getValue() < b.getValue(); } }; void doStuff() { std::priority_queue, CompareMethod > Q; }