我嘗試將文件讀入地圖,但程序停在文件中間。 該文件包含百萬行的行,每行是由數字和INT組成的STRING。 例如1230981237120313 123.爲什麼我的程序在向MAP插入值時停止?
#include<map>
#include<iostream>
#include<fstream>
void main()
{
ifstream mapfile("filename.txt",ifstream::in);
int itemp;
string stemp;
map<string,int> mapping;
while(mapfile>>stemp>>itemp)
{
mapping[stemp]=itemp;
}
}
當它處理有數百行的小文件時,它是可以的。但是,當它達到超過9000萬行時,它會停止而不報告任何錯誤,只需按「按任意鍵繼續...」即可停止。
我已經做了一些分析,並且我可以確保程序在讀取文件中的行並在需要時執行mapping[stemp]=itemp
。每次停止時,都會發生在不同的線路上,但總是在9000萬左右。
有誰能告訴我爲什麼會發生這種情況? 任何幫助將不勝感激。
您正在監視內存使用情況嗎? –
另外,考慮在X百萬行(或僅使用一個調試器)之後開始打印您從文件中獲得的值,以便確定問題何時發生。 –
一分錢到一英鎊你用盡內存 – john