title: Is it a good idea to have a pointer to a std::vector-element that not does not exist just yet but will be construct later?
body: <p>I've a situation where objects need to store pointers to other objects of the same type, in the same container. I will keep these objects in a <code>std::vector</code>. The construction is somehow involving (default construction is not possible) and it would be very good to know where the other objects will be kept, but there is no need to access them. Hence I'd like to also make a vector of pointers to the elements before constructing them. </p>
  
  <p>The procedure is similar to this (my class is more complicated than int):</p>
  
  <pre><code>std::vector&lt;int&gt; v;
  v.reserve(10);
  std::vector&lt;*int&gt; ptr_v;
  for(int i(0); i&lt;10; ++i)
     ptr_v.emplace_back(&amp;v[i]) //[] will not do boundary checks
  //now fill v and also use ptr_v
  </code></pre>
  
  <p>The basic question is, if this is a good idea - even if I can assure that the vector does not reallocate?</p>