std :: map 부분 역 직렬화를 수행하는 방법이 있습니까? boost :: archive :: text_oarchive로 직렬화 한 다음 파일에 저장 했습니까? 예를 들어 키가 정수이고 값이 구조체 인 큰 일련 화 및 저장된 맵이 있는데 이제는 부품별로 다시 가져와야합니다 ... 첫 번째 100 개의 레코드를로드 한 후 다음 100 개의 레코드를로드하십시오 ... Are 어떤 libs, 부스트 클래스 또는 솔루션을 그것을 할 수 있습니까?std :: map의 부분 비 직렬화
답변
일반적으로 동일한 serialize() 함수가 serialize 및 deserialize 모두 호출됩니다. 부품을 다시 가져 오려면 먼저 부품을 직렬화해야합니다.
답변을 주셔서 감사합니다.하지만 불행히도 우리는 이미 커다란 직렬화 된 맵을 가지고 있으며, 이제는 한 부분으로로드하려고 할 때 문제가 발생합니다. – aleksssandr
쉬운 해결책은 전체 맵을 deserialize하고 파트를 복사하는 것입니다. 하드 코어 솔루션은 직렬화 된 결과의 형식을 이해하는 것입니다.지도의 직렬화 방식과 키 및 값 유형의 직렬화 방식에 대한 소스 코드를 연구하고 특수 deserialize 함수를 작성하는 것이 좋습니다. 나는 그것이 가능하다고 믿지만, 나는 그 접근법을 선택하는 것을 강력하게 밀어 붙일 것이다. –
저는 Donghui Zhang과 함께합니다 – sehe
- 1. std :: fstream에서 비 직렬화
- 2. std :: set와 std :: map의 차이점
- 3. std :: map의 메모리 할당
- 4. std :: map의 다음 값
- 5. std :: map의 const_cast 문제
- 6. std :: string을 std :: map의 키로 사용하기
- 7. C++에서 std :: map의 지속성
- 8. 반복자에서 std :: map의 값을 변경하십시오.
- 9. std :: map의 thread-safe 사용
- 10. std :: map의 모든 값 설정
- 11. std :: map의 요소에 빠르게 액세스
- 12. 여러 뿌리가있는 JSON 문자열의 부분 비 직렬화
- 13. Linux에서 std :: map의 메모리 정렬 문제
- 14. MQMessage 직렬화/비 직렬화
- 15. 직렬화 - 비 직렬화 (이진)
- 16. 직렬화 및 비 직렬화
- 17. SIPDIalog의 직렬화/비 직렬화
- 18. 디자인 문제 : std :: map의 스레드 안전성
- 19. 읽기 전용 작업을위한 std :: map의 스레드 안전
- 20. std :: map의 매핑 유형이 서로 다릅니다.
- 21. std :: map의 값으로 boost :: flyweight 값
- 22. 함수 포인터를 사용하는 std :: map의 자동 채우기
- 23. std :: map의 본문 구성원을 어떻게 비교합니까?
- 24. std :: map의 순서는 어떻게 이루어 집니까?
- 25. QPointer를 std :: map의 키로 사용할 수 있습니까
- 26. std :: map의 위치 수정을 수행하면서 반복하고 싶습니다.
- 27. 키를 참조 할 때의 std :: map의 동작
- 28. std :: map의 값에 대한 키 변경
- 29. std :: map에 데이터를 삽입하고 vc6에서 std :: map의 데이터를 표시하는 방법
- 30. std :: map의 마지막 n 요소에서 std :: vector를 만드는 관용적 C++
왜 이제 부품을 다시 가져와야합니까? 스레드를 묶지 않으려면 다른 스레드를 시작하고 완료 할 때 신호를 발생 시키십시오. – UKMonkey
이제 직렬화 된 맵이 너무 커서 때때로 비 직렬화 할 때 문제가 발생합니다. 한 부분으로 기억에 넣어 라. – aleksssandr
그럴 경우 Donghui가 대답을주었습니다. 역주를 변환 할 수있는 컴퓨터를 찾아 새로운 모듈 식 디자인과 일치하는 새로운 형식으로 다시 직렬화해야합니다. – UKMonkey