title: Create std::vector in-place from raw data
body: <p>Given a raw array of elements, how to create a <code>std::vector</code> that takes ownership of the raw array without reallocate &amp; copy?</p>
  
  <p>For example having the raw array:</p>
  
  <p><code>int* elems = new int[33]</code></p>
  
  <p>how to create a <code>std::vector</code> of size <code>33</code> pointing to <code>elems</code>?</p>
  
  <p>I am sure that theoretically this is possible, as usually <code>std::vector</code> is implemented as a structure containing three pointers, one pointing to the beginning of the allocated memory, one to the end of the valid elements, and one to the end of the allocated memory. But is there a standard way of initializing the <code>std::vector</code> structure with the raw array?</p>