Re: [問題] 內含array的link list

看板C_and_CPP作者 (Ar藤)時間13年前 (2011/12/02 06:55), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串2/2 (看更多)
我想解釋為什麼會有這樣的需求 情況是有一個很大的檔案要讀入(約10GB) 為了節省mem空間 我們採取了一個作法 先掃描一次整個檔案 由裡面某些數據 可以了解我們要配置多少記憶體 接著配置剛好的記憶體 然後再掃描一次檔案 這次才真的去parse 把資料按format填入 因為我覺得掃描2次似乎有點多餘,而且多花時間,才有上一篇的想法 不過現在知道free, delete的限制 似乎掃2次才是個省mem的好方法 不知有沒有人遇到類似的情形?? ※ 引述《Arton0306 (Ar藤)》之銘言: : 最近遇到一個問題 : 有一很大筆的資料要讀進來 (1G個整數) : 如果用vector由於它會2倍2倍成長 : 有些空間會被浪費掉 : 如果用link list : 每個node會有個pointer也造成浪費 : 所以我想可以在link list裡面放個buffer 每個buffer可存多個元素 : 這樣pointer造成的浪費就比較少 : 不知道這樣的結構是否有什麼特別的名稱? : C++有提供類似的庫以供使用嗎? : 順便附上我寫的程式碼 : 不過還有一些error沒清完 : http://ideone.com/9FfGJ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.192.162.252

12/02 15:00, , 1F
一定要把整個檔案塞到ram裡嗎? 可否切成多個page?
12/02 15:00, 1F

12/02 15:58, , 2F
為了得知恰好的配置空間 一定必須要掃完整個檔一次
12/02 15:58, 2F

12/02 18:58, , 3F
掃二次+1,但若檔案格式固定,在掃第一次時可能可以較快.
12/02 18:58, 3F
文章代碼(AID): #1Es7PJd7 (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1Es7PJd7 (C_and_CPP)