我的應用程序的一部分涉及渲染音頻波形。用戶將能夠放大/縮小波形。從完全縮小開始,我只想在必要的內部對音頻進行採樣,以給定分辨率繪製波形。然後,當它們放大時,異步重新採樣「缺失點」並提供更清晰的波形。 (認爲谷歌地圖。)我不確定用於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