2015-07-03 52 views
-2

我有兩個字符串數組,都帶有250k +項目。當我試圖將這些代碼硬編碼到我的C++程序中時,它就陷入了編譯階段。我目前有兩個字符串作爲CSV .txt文件,例如{...「fksdfjsa」,「fsdajhfisa」,「wgferwjhgo」...}。在C++中處理大型數組而不滿足內存需求的最佳方式是什麼?

我應該將它們保存爲不同的C++程序中的數組並嘗試導入它們,還是應該在迭代值時以某種方式進行流式處理?如果是這樣,我該怎麼做?對於它的價值,我打算將第一個數組的每個元素與第二個數組的每個元素進行比較。

+0

對於缺乏方向,我提前表示歉意 - 我對C++和大型文件IO都很陌生,並且不知道從哪裏去。 – ntomlin1996

+1

如果常量數據不適合代碼空間,請放入文件中。 –

+1

與「處理」無關,因爲它(顯然)不會編譯。確保標題準確地反映了問題。 – user2864740

回答

2

只需在運行時從CSV文件中讀取數據即可。瞭解<fstream>標準庫標頭。

0

我肯定會從文件中讀取輸入。其中包括:您可以開始對較小的輸入文件進行調試/測試。

如果你是谷歌的C++ CSV閱讀器,你可以節省自己調試時間。

最後:這個練習的目標沒有被描述,但是「......比較每個元素......」天真地完成需要很長時間。如果您正在查找匹配項,請考慮首先對輸入進行排序,然後並行運行列表。這將使其恢復到線性時間。

+0

線性比較,但仍然O(n * logn),因爲你必須首先排序它們,肯定比這裏提出的O(n^2)更好。 –

相關問題