Priority queue declaration and constructor knowledge

unable to understand the declaration of priority queue for heap i.e. priority_queue <int, vector, greater> g
I read some things about priority queue on geeks for geeks can you give an overview of different ways of using priority like the one you did here

see the simple stl declaration for priority queue is priority_queue <int> pq; this provides max heap.

then in order to get a min heap ie if we require the smallest element to be the root node every time we use

priority_queue <int, vector<int>, greater<int>> pq

greater is basically a Binary function object class whose call returns whether the its first argument compares greater than the second (as returned by operator >).
So it helps create a min heap.

If u are asking for question where priority queue is usefull is
sliding-window-maximum-maximum-of-all-subarrays-of-size-k
Find k closest numbers in an unsorted array
Find the k largest numbers after deleting the given elements

@chhavibansal what is the use of int, vector these two parameters , explain them as well

I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.

On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.