title: reading object from const unordered_map
body: <p>Why am I not allowed to read an object from a constant unordered_map? </p>
  
  <pre><code>const unordered_map&lt;int, int&gt; z;
  int val = z[5]; // compile error
  </code></pre>
  
  <p>The error under clang is the following:</p>
  
  <pre><code>error: no viable overloaded operator[] for type 'const
        unordered_map&lt;int, int&gt;'
                          int val = z[5];
  </code></pre>
  
  <p>Considering that the equivalent code using a <code>const vector</code> works fine I'm somewhat confused why we get this behavior.</p>