title: How make_heap() function works?
body: <p>I have basic understanding of Vectors and iterators. But I am facing problem in understanding the output of the below code snippet.</p>
  
  <p>To be specific, I am unable to findout the functionality of make_heap() function.
  How it is producing output: 91  67  41  24  59  32  23  13 !!</p>
  
  <p>As per my knowledge, the heap will look like this:</p>
  
  <pre><code>        91
         /  \
       67    41
      /  \  /  \
     59 24 32  23
    /
   13
  </code></pre>
  
  <p>So, I was expecting the output as:
  91 67 41 59 24 32 23 13</p>
  
  <p>I would really appreciate if anyone can help me in understanding how make_heap() generated such a output.</p>
  
  <pre><code>int main()
  {
  int aI[] = { 13, 67, 32, 24, 59, 41, 23, 91 };
  vector&lt;int&gt; v(aI, aI + 8);
  
  make_heap( v.begin(), v.end() );
  
  vector&lt;int&gt;::iterator it;
  for( it = v.begin(); it != v.end(); ++it )
      cout &lt;&lt; *it &lt;&lt; " ";
  //Output: 91  67  41  24  59  32  23  13
  
      return 0;
  }   
  </code></pre>