지도 객체 (STL 라이브러리에서)를 영구적으로 만드는 (즉, 파일에 쓰는) 쉽고 간단한 방법을 알고 있으므로 나중에 프로그램을 다시 시작할 때 상태를 복구 할 수 있습니다 나중에 실행에서 ??C++에서 std :: map의 지속성
덕분에 당신의 도움
지도 객체 (STL 라이브러리에서)를 영구적으로 만드는 (즉, 파일에 쓰는) 쉽고 간단한 방법을 알고 있으므로 나중에 프로그램을 다시 시작할 때 상태를 복구 할 수 있습니다 나중에 실행에서 ??C++에서 std :: map의 지속성
덕분에 당신의 도움
위해 나는 Boost Serialization 라이브러리가 표준 : :지도를 직렬화 할 생각하지만, 표준 라이브러리 자체는 어떤 수단을 제공하지 않습니다. 직렬화는 많은 기능을 갖춘 훌륭한 라이브러리이며 사용하기 쉽고 자신 만의 유형으로 확장 할 수 있습니다.
대답은 직렬화입니다. 특성은 사용자의 필요와 환경에 따라 다릅니다. 우선, 부스트 직렬화 라이브러리를 체크 아웃 : http://www.boost.org/doc/libs/1_36_0/libs/serialization/doc/index.html
하면, 수동으로 다른 컨테이너 구조를 유지하는 것과 동일한 방법으로 그것을 디스크에 개별 부품 쓰는하려면 다음
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 라이브러리에 따라 작업을해야합니다.
그렇지 않으면 boost serialization 또는 google's new serialization library을 시도하십시오.