设置缓冲区后的代码。问题描述见 “ 解题笔记(9)——提取某日访问次数最多的那个IP ”
#pragma warning(disable:4786) //VC6.0中 忽略警告
#include <fstream>
#include <iostream>
#include <map>
#include <string>
#include <ctime>
using namespace std;
const unsigned N=400000000; //随机产生的IP地址数
const unsigned FILE_NUM=16; //产生的小文件个数
const unsigned HASH_SHIFT=28; //散列值的位移量
const unsigned BUFFER_SIZE=32;
inline unsigned HashInt(unsigned value); //将整数散列到0到FILE_NUM之间
bool ProduceIP(string fileName); //随机产生IP地址,看成是32位无符号数
bool DecomposeFile(string fileName); //分而治之,将大文件分为若干个小文件
bool FindTargetIP(unsigned result[2]); //找到出现次数最多的IP
int main()
{
unsigned start,end; //记录总的运行时间
unsigned start1,end1; //产生大文件的时间
unsigned start2,end2; //分解大文件的时间
unsigned start3,end3; //找出现IP次数最多的时间
string name="IP.bin";