title: lower_bound/upper_bound on unsorted vector
body: <pre><code>const std::vector&lt;int&gt; v = {5, 7, 3, 6, 5, 4, 7, 8, 5, 6};
  
  auto low = std::lower_bound( v.begin(), v.end(), 7);
  auto high = std::upper_bound( v.begin(), v.end(), 7);
  std::cout &lt;&lt; low - v.begin() &lt;&lt; " " &lt;&lt; high - v.begin();
  </code></pre>
  
  <p>So when I try to compile this code using the clang++ compiler on my Mac , it returns the output as</p>
  
  <pre><code>10 10
  </code></pre>
  
  <p>which implies as <code>v.end()</code> for both high and low although low should be = 1 and high =7 (the number 8). What am I doing wrong?</p>