2012-02-06 37 views
1

我目前正在實現一個使用Qt顯示超大規模數據的直方圖,並且對於我的問題應該使用哪種數據結構有些疑問。我將顯示從應用程序用戶收到的查詢數量,我應該顯示的方式如下所示 - 在單個應用程序中,點擊不同的「顯示此數據等」時將顯示不同的直方圖。 buttons-處理複雜直方圖數據的最有效方法?

1)顯示每月每個查詢的總直方圖-4這裏數據的幾個月裏,我
保持四個變量和增加他們爲我抓住屬於在CSV那幾個月
查詢文件 -

2)顯示每的每一天的總查詢在所選月份-I的直方圖在考慮使用4個QVectors來表示這一個月份的,遞增的載體(每一天的元素),如我來通過該特定一天矢量表示八月份,每當遇到2011-08-XY數據時,我將通過1-遞增該向量的(XY + 1)個元素,我的第二個替代方法是使用4個QLinkedList更好的複雜性,但我不確定我提出的方法是否足夠有效,並且我願意傾聽任何其他想法。

3)這裏的事情有點複雜。顯示選定日期和月份每小時總查詢的直方圖。所表示的數據是以很大的方式相乘的,我不知道應該使用哪種數據結構或結構組合來實現這個數據結構。列表可能是?

任何想法,我的問題在2)和3)將是有益的,在此先感謝。

回答

2

其實,這不應該太難以管理,始終做到每小時查詢。假設每小時查詢次數永遠不會大於最大int值,那麼每天只有24個字節= 32位或64,具體取決於您的機器。假設32位,那麼每MB可以獲得長達28年的數據價值。

沒有必要轉移月/年 - 你的程序可以工作了這一點。只需將小時0分配到數據中的最早點,然後將其保留爲常數,然後根據自那時起經過的小時計算出日期。

這避免了具有列表或任何幻想的名單 - 只使用其中每個地址包含自0小時的小時數,併爲這一個小時的查詢數的數組。

1

你爲什麼不簡單地使用經典的數據庫? 當你開始提出這樣的問題時,我認爲現在是考慮更健壯的結構的好時機。在任何數據庫中都實現了多種數據結構,針對不同的訪問類型進行了優化。您至少應該考慮查找,插入,刪除,範圍查詢。沒有任何結構比其他所有成本都好,所以總會有一個折衷。

Qt擁有some database classes就可以使用。我從來沒有使用Qt SQL庫,但我認爲你應該試試看。幸運的是,在頁面末尾有一個Qt SQL編程指南。

相關問題