title: data that push back to 2D vector
body: <pre class="lang-cpp prettyprint-override"><code>
  vector&lt;vector&lt;int&gt;&gt; output; // 2D int vector
  
  
  //normally, we can do
  vector&lt;int&gt; v = { 44, 55 };
  output.push_back(v);
  
  //I found some example that we can do
  output.push_back({ 22, 33 });
  
  </code></pre>
  <p>I know {} can be used to init an array or vector.
  How the compiler know { 22, 33 } is an <code>vector&lt;int&gt;</code> rather than int array if i want to skip the line like <code>vector&lt;int&gt; v = { 44, 55 };</code> ?</p>
  <p>and {22,33} is it a temporary object? (I know the return-by-value functions always give rise to temporary objects. )</p>