title: Is boost::container::vector faster than std::vector? Why?
body: <p>I did a interesting test on boost vector and std vector as the following</p>
  
  <pre><code>int N = 10000;
  {
      boost::timer::auto_cpu_timer t;
      std::vector&lt;int&gt; v;
      for (int i = 0; i &lt; N; ++i)
      {
          v.insert(v.begin(), i);
      }
  }
  
  {
      boost::timer::auto_cpu_timer t;
      boost::container::vector&lt;int&gt; v;
      for (int i = 0; i &lt; N; ++i)
      {
          v.insert(v.begin(), i);
      }
  }
  </code></pre>
  
  <p>win32 release, compiled by vc2010, /O2 /Oy-</p>
  
  <p>for N = 10000</p>
  
  <p>for std vector: 0.140849s wall, 0.140401s user + 0.000000s system = 0.140401s CPU (99.7%)</p>
  
  <p>f boost vector: 0.056174s wall, 0.062400s user + 0.000000s system = 0.062400s CPU (111.1%)</p>
  
  <p>for N = 100,000</p>
  
  <p>std:   14.050757s wall, 14.055690s user + 0.000000s system = 14.055690s CPU (100.0%)</p>
  
  <p>boost: 5.585048s wall, 5.584836s user + 0.000000s system = 5.584836s CPU (100.0%)</p>
  
  <p>When adding reserve(N) to both, CPU times change little.</p>
  
  <p>Any difference between them? Boost is much faster than std, why? Thanks.</p>
  
  <p>Check sizeof(), std::vector 16, while boost::container::vector 12.</p>