如果要把一个map变量的内容写到文件,就该如何做?typedef map<string, string> map_ss;
map_ss* tmp new map_ss;
tmp中现在有400万条数据,是从数据库中读出来的,如果每次都从数据库中读将耗很长时间,能不能第一次从数据库中读,把tmp中的据有东东都写到文件,下次直接从这个文件读,节约时间,请大虾赐教,先谢谢

解决方案 »

  1.   

    map内容写到文件的方式就是一条条地遍历map表,把字符串对 写到文件中去
      

  2.   

    //写文件
    CStdioFile file("mapdata.txt", CFile::modeCreate|CFile::modeReadWrite);
    for(map<string, string>::iterator mi = tmp.begin(); mi != tmp.end(); ++mi)
    {
    CString str;
    str.Format("%s=%s\n", mi->first.c_str(),mi->second.c_str());
    file.WriteString(str);
    }
    file.Close();
    //读文件
    map<string, string> m1;
    char buf[80];
    CStdioFile file("mapdata.txt",CFile::modeRead);
    while (file.ReadString(buf, 80)) {
        string skey = strtok(buf, "=");
        string sval = strtok(NULL, "\n");
        m1[skey] = sval;
    }
    file.Close();