Does the default constructor of std::pair<> set basic types (int, etc) to zero?
<p>After writing:</p>

<pre><code>std::pair&lt;int, int&gt; x;
</code></pre>

<p>Am I guaranteed that x.first and x.second are both zero?  Or could they have any value?  </p>

<p>The reason why I care is because I'm trying to determine whether a map whose values are pointers is guaranteed to return NULL if I access an element that's not in the map.  I.e., if I do:</p>

<pre><code>std::map&lt;int, void*&gt; my_map;
std::cout &lt;&lt; int(my_map[5]) &lt;&lt; std::endl;
</code></pre>

<p>then am I guaranteed to get zero (NULL)?  Or is the behavior undefined?</p>
