title: Searching a map with upper bound and lower bound
body: <p>STL newbie question:</p>
  
  <p>Regarding functions <code>std::map::upper_bound</code> and <code>std::map::lower_bound</code> is it valid to specify a key that is not actually present in the map?</p>
  
  <p>Example </p>
  
  <pre><code>std::map&lt;int,int&gt; intmap;
  std::map&lt;int,int&gt;::iterator it1, it2;
  
  intmap[1] = 10;
  intmap[2] = 20;
  intmap[4] = 40;
  intmap[5] = 50;
  
  it1 = intmap.lower_bound (3);  // Is this valid?
  it2 = intmap.upper_bound (3);  // Is this valid?
  </code></pre>