나는 5 백만 쌍이 넘는 멀티 맵을 가지고 있으며 값으로 키를 교환해야합니다. 때문에 컨테이너의 큰 크기와 관련된 프로세스에멀티 맵에서 각 쌍의 값 교환하기 <int, int>
unordered_multimap<int, int> edge;
, 나는지도의 각 요소를 반복하여 교체 쌍을 가진 새로운과 multimap을 만들 필요가 없습니다 선호하는 것입니다.
이 작업을 수행하는 가장 좋은 방법은 무엇일까요? 자리에?
나는 5 백만 쌍이 넘는 멀티 맵을 가지고 있으며 값으로 키를 교환해야합니다. 때문에 컨테이너의 큰 크기와 관련된 프로세스에멀티 맵에서 각 쌍의 값 교환하기 <int, int>
unordered_multimap<int, int> edge;
, 나는지도의 각 요소를 반복하여 교체 쌍을 가진 새로운과 multimap을 만들 필요가 없습니다 선호하는 것입니다.
이 작업을 수행하는 가장 좋은 방법은 무엇일까요? 자리에?
올바른 방법은이 아니며 처음에는 어느 방향으로나 조회를 수행 할 수있는 양방향지도가 있어야합니다.
Boost.Bimap을 살펴보십시오.
이 작업을 수행 할 수 없습니다.
지도에는 키의 해시 값을 기반으로 요소가 저장되어 있습니다. 다른 키 (이전 값)에서 해시하려면 전체 맵을 다시 작성하거나 요소를 저장하는 다른 방법을 생각해야합니다.
Boost.Bimap (Orbit의 Lightness Races에서 제안한대로)는 양방향 무 순서 멀티 맵을 지원합니다.
_Why_이 작업을 수행하는 데 "필요합니까?" 확실히 다른 방향으로 조회를해야하는 경우 bimap이 더 적합합니까? –