title: std::vector elements initializing
body: <pre><code>std::vector&lt;int&gt; v1(1000);
  std::vector&lt;std::vector&lt;int&gt;&gt; v2(1000);
  std::vector&lt;std::vector&lt;int&gt;::const_iterator&gt; v3(1000);
  </code></pre>
  
  <p>How elements of these 3 vectors initialized?</p>
  
  <p>About int, I test it and I saw that all elements become 0. Is this standard? I believed that primitives remain undefined. I create a vector with 300000000 elements, give non-zero values, delete it and recreate it, to avoid OS memory clear for data safety. Elements of recreated vector were 0 too.</p>
  
  <p>What about iterator? Is there a initial value (0) for default constructor or initial value remains undefined? When I check this, iterators point to 0, but this can be OS </p>
  
  <p>When I create a special object to track constructors, I saw that for first object, vector run the default constructor and for all others it run the copy constructor. Is this standard?</p>
  
  <p>Is there a way to completely avoid initialization of elements? Or I must create my own vector? (Oh my God, I always say NOT ANOTHER VECTOR IMPLEMENTATION)
  I ask because I use ultra huge sparse matrices with parallel processing, so I cannot use push_back() and of course I don't want useless initialization, when later I will change the value.</p>