繁体   English   中英

使用文件的指针读取/编写地图C ++

[英]Reading/Writing a map with pointers to a file c++

我正在尝试将std :: map对象读写到文件中。 地图类型是

map<string, Node*>

而且我已经成功地将其写入文件,但未成功读回。 我不确定我是否正确存储它,我认为这是因为我在地图(Node *)中有指针,但是我不确定。 我怎么能完整地写出包含所有对象的整个地图,然后完美地读回来。 我目前的读写方法是

template<typename T>
T ReadObject(string path) {
    T num;
    ifstream infile;
    infile.open(path, ios::in|ios::binary);
    infile.read(reinterpret_cast<char *>(&num),sizeof(T));
        infile.close();
    return num;
}

template<typename T>
void WriteObject(string path, T& num) {
       ofstream outfile;
       outfile.open (path, ios::out|ios::binary);
       outfile.write(reinterpret_cast<char *>(&num),sizeof(T));
       outfile.close();
}

顺便说一下,这些工作在读写整数时有效

指针只是内存地址。 您指向的数据永远不会放入文件中。

保存对象时,需要使用对对象内部结构的了解。 按位复制是不够的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM