title: how to use std::vector::emplace_back for vector<vector<int> >?
body: <pre><code>  vector&lt;vector&lt;int&gt; &gt; res;
    res.emplace_back({1,2}); // change to res.push_back({1,2}); would work
  </code></pre>
  
  <p>This gives me error</p>
  
  <pre><code>main.cpp:61:25: error: no matching function for call to ‘std::vector&lt;std::vector&lt;int&gt; &gt;::emplace_back(&lt;brace-enclosed initializer list&gt;)’
  main.cpp:61:25: note: candidate is:
  In file included from /usr/include/c++/4.7/vector:70:0,
                   from /usr/include/c++/4.7/bits/random.h:34,
                   from /usr/include/c++/4.7/random:50,
                   from /usr/include/c++/4.7/bits/stl_algo.h:67,
                   from /usr/include/c++/4.7/algorithm:63,
                   from miscalgoc.hpp:1,
                   from main.cpp:1:
  /usr/include/c++/4.7/bits/vector.tcc:92:7: note: void std::vector&lt;_Tp, _Alloc&gt;::emplace_back(_Args&amp;&amp; ...) [with _Args = {}; _Tp = std::vector&lt;int&gt;; _Alloc = std::allocator&lt;std::vector&lt;int&gt; &gt;]
  </code></pre>
  
  <p>How to make this work? Also, why an allocator is needed here? </p>