我尝试将文件读入地图,但程序在文件中间停止。该文件包含数百万行,每行是一个由数字和一个 INT 组成的 STRING。例如 1230981237120313 123。
#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 万左右。
谁能告诉我为什么会发生这种情况?任何帮助将不胜感激。