title: C++ Code Clarification Needed
body: <p>I'm trying to understand what the code below says:</p>
  
  <p>struct compare_pq;</p>
  
  <pre><code>struct compare_pq {
      bool operator() (Events *&amp; a, Events *&amp; b);
  };
  
  std::priority_queue&lt;Events *, std::vector&lt;Events *&gt;, compare_pq&gt; eventList;
  </code></pre>
  
  <p>
  i looked at what priority_queue is and how its declared but can't quit understand what <code>compare_pq</code> is doing in the priority_queue <code>eventList</code>. Also what does <code>operator()</code> do since i've never seen <code>*&amp;</code> before and empty operator overloading <code>operator()</code>!</p>
  
  <p>any help would be appreciated. Thank you</p>