title: Why are std::vector::data and std::string::data different?
body: <p>Vector's new method <code>data()</code> provides a const and non-const version.<br>
  However string's <code>data()</code> method only provides a const version.</p>
  
  <p>I think they changed the wording about <code>std::string</code> so that the chars are now required to be contiguous (like <code>std::vector</code>).</p>
  
  <p>Was <code>std::string::data</code> just missed? Or is the a good reason to only allow const access to a string's underlying characters?</p>
  
  <p>note: <code>std::vector::data</code> has another nice feature, it's not undefined behavior to call <code>data()</code> on an empty vector.  Whereas <code>&amp;vec.front()</code> is undefined behavior if it's empty.</p>