문제

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top