我有一個包含數百萬個資料點的 .txt 檔案,我想將它們組織成類和向量。所以資料是可用的。但是,這將花費很長時間,而且我不想每次啟動程式時都這樣做。有沒有辦法存盤創建的類和其中的資料,所以我只需要經歷一次這個程序?
這是我第一次嘗試實際程式,所以如果這是一個愚蠢的問題,我深表歉意。如果您能指出我正確的方向,我將不勝感激。
uj5u.com熱心網友回復:
對我來說,這聽起來像是一個過早的優化。你說它“需要很長時間”,但沒有量化。需要多長時間(作為資料大小的函式),您的性能要求是什么?聽起來您還沒有撰寫此代碼,因此對實際性能一無所知。如果這是您的第一個實質性 C 專案,則必要的技術可能過于先進,并且可能無法實作收益。
一種解決方案可能是在記憶體映射檔案中實體化您的物件,并使用 Placement 恢復它們new。然而,除非將文本檔案加載到資料結構中所需的構造、處理和轉換非常重要,否則我懷疑結果是否合理。
簡單地將資料序列化為二進制檔案而不是文本檔案,以便在重新讀取它時,需要更少的轉換可能是一種更簡單的方法。也就是說,您可以將資料檔案改寫成后續更高效直接重新加載的形式。然后,您將撰寫代碼以能夠讀取任何一種格式,并從文本格式生成優化的格式。
uj5u.com熱心網友回復:
我認為這是不可能的,因為您的資料需要加載到 RAM 中才能使用它。無論如何,這將需要很長時間。
但是,如果您知道陣列的大小,則可以減少加載時間。使用特定大小而不是使用 push_back() 對其進行初始化,因為此方法需要更多時間。您也可以嘗試將二進制寫入檔案,這將減少檔案大小和下載時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/521617.html
標籤:C 数据结构数据存储
上一篇:如何更正Apify中的選擇器以從JSON資料鏈接獲取資料?
下一篇:數學方程中的NaN
