문제
MAP 객체 (STL 라이브러리에서)를 지속적으로 만들 수있는 쉽거나 간단한 방법을 알고 있습니까 (예 : 나중에 프로그램이 실행될 때 나중에 상태를 복구 할 수 있도록).
당신의 도움을 주셔서 감사합니다
해결책
나는 믿는다 직렬화를 향상시킵니다 라이브러리는 STD :: MAP를 일련화 할 수 있지만 표준 라이브러리 자체는 수단을 제공하지 않습니다. 직렬화는 많은 기능을 갖춘 훌륭한 라이브러리이며 사용하기 쉽고 자신의 유형으로 확장 할 수 있습니다.
다른 팁
수동으로 수행하려면 다른 컨테이너 구조를 지속하는 것과 같은 방식으로 개별 부품을 디스크에 기록하십시오.
outputFile.Write(thisMap.size());
for (map<...>::const_iterator i = thisMap.begin(); i != thisMap.end(); ++iMap)
{
outputFile.Write(i->first);
outputFile.Write(i->second);
}
그런 다음 다시 읽으십시오.
size_t mapSize = inputFile.Read();
for (size_t i = 0; i < mapSize; ++i)
{
keyType key = inputFile.Read();
valueType value = inputFile.Read();
thisMap[key] = value;
}
분명히 맵 유형과 파일 I/O 라이브러리를 기반으로 작업을 수행해야합니다.
그렇지 않으면 시도하십시오 직렬화를 향상시킵니다, 또는 Google의 새로운 직렬화 라이브러리.
대답은 직렬화입니다. 세부 사항은 귀하의 요구와 환경에 따라 다릅니다. 우선, 부스트 직렬화 라이브러리를 확인하십시오. http://www.boost.org/doc/libs/1_36_0/libs/serialization/doc/index.html
제휴하지 않습니다 StackOverflow