title: Why doesn't C++ require a "new" statement to initialize std::vector?
body: <p>Consider:</p>
  <pre><code>/* bar.h */
  class bar{
      /* Standard stuff omitted */
      std::vector&lt;my_obj*&gt; foo;
  };
  
  /* bar.cpp */
  bar::bar(){
      // foo = new std::vector&lt;my_obj*&gt;(); &lt;-- Why don't I need this line??
      foo.push_back(new my_obj());
  }
  </code></pre>
  <p>Why does this code work even though we didn't assign <em>foo</em> a new instance of <em>std::vector</em>?</p>