title: c++11 - random device usage
body: <p>What is the different between</p>
  
  <pre><code>std::random_device rd;
  std::mt19937 gen(rd());
  std::uniform_int_distribution&lt;int&gt; dist(0, 100);
  for (int n = 0; n &lt; 100; ++n)
      std::cout&lt;&lt;dist(gen)&lt;&lt;std::endl; 
  </code></pre>
  
  <p>and</p>
  
  <pre><code>std::random_device rd;
  std::uniform_int_distribution&lt;int&gt; dist(0, 100);
  for (int n = 0; n &lt; 100; ++n)
      std::cout&lt;&lt;dist(rd)&lt;&lt;std::endl; 
  </code></pre>
  
  <p>The first example use rd() as a seed, but the output is similar, I want know what's the advantage of first.</p>