title: Difference between allocator supplied as template parameter and allocator supplied as constructor argument in C++ containers?
body: <p>What's the difference between supplying an STL container (for example, std::vector) with an allocator as a template parameter, eg.:</p>
  
  <pre><code>std::vector&lt;int, std::allocator&lt;int&gt;&gt; some_ints;
  </code></pre>
  
  <p>and supplying an allocator as a constructor argument, eg:</p>
  
  <pre><code>std::allocator&lt;int&gt; temp;
  std::vector&lt;int&gt; some_ints(temp);
  </code></pre>
  
  <p>and what are the advantages of either, given that they are not the same thing (ie. one supplies a type, the other a type instance) and can be used separately from each other?</p>