我的应用程序的一部分涉及渲染音频波形。用户将能够放大/缩小波形。从完全缩小开始,我只想在必要的内部对音频进行采样,以给定分辨率绘制波形。然后,当它们放大时,异步重新采样“缺失点”并提供更清晰的波形。 (认为谷歌地图。)我不确定用于Qt世界的最佳数据结构。理想情况下,我想存储按时间排序的数据样本,但可以根据需要填写点数。什么Qt容器类用于排序列表?
因此,例如,数据点最初可能是这样的:
data[0 ms] = 10
data[10 ms] = 32
data[20 ms] = 21
...
但是,当他们放大,我会在必要时获得更多的积分,也许是:
data[0 ms] = 10
data[2 ms] = 11
data[4 ms] = 18
data[6 ms] = 30
data[10 ms] = 32
data[20 ms] = 21
...
注意,括号中的值是查找值(毫秒),而不是数组索引。
我应该能够有效地查询范围(“所有点在10和30毫秒之间”)并且有效地插入新点。
在.net中我可能使用了一个SortedList<int, int>
。 Qt中最好的类是什么?或者我应该使用STL容器?
在QHash上迭代时,项目是任意排序的。使用QMap,项目总是按键**排序**。 – Yash 2016-04-05 11:29:35