why do we need 3 parameters for creating a priority queue with user-defined comparison .
priority_queue<Node*, vector<Node*>, comp> pq;
why cant we write something like priority_queue<Node*, comp> pq;(removed vector<node*>) to create our own comparison operator.
What is the purpose of vector<node*> ?
Also how are the elements taken for comparison, and pushed into the queue after comparison.
How does overloading occur here.