title: How is iterating through a hashtable implemented?
body: <p>I am trying to understand how is iterating through a hashtable implemented. I just cannot imagine it. I am particularly interested in the speed of such iteration. For example:</p>
  
  <pre><code>QHash&lt;int, std::string&gt; hashTable;
  ...
  for (auto it = hashTable.begin(); it != hashTable.end(); ++it)
      std::cout &lt;&lt; it.value() &lt;&lt; std::endl;
  </code></pre>
  
  <p>Is this an <code>O(hashTable.size())</code> operation?</p>
  
  <p>I tried to dig in the source code, but could not find the proper definition.</p>