title: What Qt container class to use for a sorted list?
body: <p>Part of my application involves rendering audio waveforms. The user will be able to zoom in/out of the waveform. Starting at fully zoomed-out, I only want to sample the audio at the necessary internals to draw the waveform at the given resolution. Then, when they zoom in, asynchronously resample the "missing points" and provide a clearer waveform. (Think Google Maps.) I'm not sure the best data structure to use in Qt world. Ideally, I would like to store data samples sorted by time, but with the ability to fill-in points as needed.</p>
  
  <p>So, for example, the data points might initially look like:</p>
  
  <pre><code>data[0 ms] = 10
  data[10 ms] = 32
  data[20 ms] = 21
  ...
  </code></pre>
  
  <p>But when they zoom in, I would get more points as necessary, perhaps:</p>
  
  <pre><code>data[0 ms] = 10
  data[2 ms] = 11
  data[4 ms] = 18
  data[6 ms] = 30
  data[10 ms] = 32
  data[20 ms] = 21
  ...
  </code></pre>
  
  <p>Note that the values in brackets are lookup values (milliseconds), not array indices. </p>
  
  <p>I should be able to efficiently query for a range ("all points between 10 and 30 milliseconds") and somewhat-efficiently insert new points.</p>
  
  <p>In .Net I might have used a <code>SortedList&lt;int, int&gt;</code>. What would be the best class to use in Qt? Or should I use a STL container?</p>