Я пытаюсь прочитать и написать объект 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();
}
btw эти работы при чтении и записи целых чисел
Указатели - это только адреса памяти. Данные, на которые вы указываете, никогда не помещаются в файл.
Вы должны использовать то, что знаете о внутренней структуре объектов при их сохранении. Побитовой копии недостаточно.