(不是字符串:: MAX_SIZE大)我有一個巨大的文本文件(5GB〜)這是我的程序數據庫。在運行期間,這個數據庫是完全讀取多次與字符串函數像string :: find(),string :: at(),string :: substr()...C++讀取大文件的文本字符串
問題是,該文本文件不能因爲string :: max_size肯定是太小了。
你將如何實現這一點?我有一個想法加載一個部分字符串 - >閱讀 - >關閉 - >加載另一部分相同的字符串 - >閱讀 - >關閉 - > ... 有更好/更有效的方法嗎?
我認爲你想這樣做的事實表明一個很差/懶惰的設計(對不起)。您至少可以創建簡單的函數來搜索文件本身,而不是將整個內容加載到內存中並使用它。請記住,如果有足夠的內存可用,而且你經常這樣做,大多數現代操作系統都會將其保留在RAM中,所以不應該有一個巨大的瓶頸。 – delicateLatticeworkFever 2012-04-23 12:44:02
假設在程序的硬件需求中添加「64位處理器和8GB RAM」不是一種選擇嗎?在開發工作方面,這是迄今爲止最有效的解決方案。否則,使用真正的數據庫可能是一個好主意。 – 2012-04-23 12:44:14
哪個操作系統/編譯器? gcc/linux 64位有一個「2^62」max_size「。 – 2012-04-23 13:03:35