我已經編寫了一個程序來解析日誌文件。有問題的文件大約有一百萬條左右,我的意圖是按日期刪除所有重複的條目。所以如果某個日期有100個獨特的登錄,它將只顯示每個名稱的一個登錄。我創建的日誌輸出形式如下:刪除日誌文件中的重複條目C++
AA 01/Jan/2013
AA 01/Jan 2013
BB 01/Jan 2013
等等等都是在1月份。
這是我到目前爲止已經寫的,我不斷在for循環條目通過排序量和namearr & datearr是用於名稱和日期排列。我的最終遊戲是在第一個字段中沒有與每個日期對應的重複值。我試圖遵循適當的禮儀和禮儀,所以如果我不接受這個問題的基礎,我很抱歉。
我自己解決這個問題的第一個想法是嵌套一個for循環來比較所有以前的名字與日期,但由於我正在學習數據結構和算法分析,所以我不想爬上高速運行倍。
if(inFile.is_open())
{
for(int a=0;a<i;a++)
{
inFile>>name;//Take input file name
namearr[a]=name;//Store file name into array
//If names are duplicates, erase them
if(namearr[a]==temp)
{
inFile.ignore(1000,'\n');//If duplicate, skip to next line
}
else
{
temp=name;
inFile.ignore(1,' ');
inFile>>date;//Store date
datearr[a]=date;//Put date into array
inFile.ignore(1000,'\n');//Skip to next like
cout<<namearr[a]<<" "<<datearr[a]<<endl;//Output code to window
oFile<<namearr[a]<<" "<<datearr[a]<<endl;//Output code to file
}
}
}
我會給這個鏡頭,謝謝你的建議。 –