title: Should I use std::unique_ptr<T> in a std::vector member variable in my class?
body: <p>Imagine a <code>class C</code> that has a member variable <code>m_MyList</code> of type <code>std::vector</code> in which I want to store objects of type <code>MyClass</code>. <code>C</code> has two functions that add or remove objects in <code>m_MyList</code>.
  <code>m_MyList</code> should also be made accessible for consumers of <code>C</code> as they need to read the collection of <code>MyClass</code> objects. The external reader of the collection will have no means to change the collection, thus the <code>MyClass</code> objects are owned only by <code>C</code>.</p>
  
  <p>Now my question:
  In C++11 style, what is the best T to store in the vector?
  The possibilities seem to be:</p>
  
  <ul>
  <li><code>std::vector&lt;MyClass&gt;</code></li>
  <li><code>std::vector&lt;MyClass*&gt;</code></li>
  <li><code>std::vector&lt;unique_ptr&lt;MyClass&gt;&gt;</code>, using <code>std:move</code> to push the <code>unique_ptr</code> into the <code>vector</code></li>
  </ul>