2010-07-18 3 views
0

우리는이지도질문은 일종의 예를 들어

map<char,int>mymap; 
mymap['a']=101; 
mymap['c']=45; 
mymap['b']=76; 
mymap['d']=98; 

나는 우리가지도를 반복하는 경우가에 따라 요소를 인쇄 할 것이라는 점을 알고있다 방법

어떻게
a>=101; 
b>=76; 
c>=45; 
d>=98; 

다음 작은 키가 작은 참조하도록 가치? 또는

a-45 
b-76 
c-98 
d-101 

? 감사합니다.

답변

3

정확하게 이해하고 있으면 값을 영구히 연관시키지 않고 두 개의 다른 값 집합을 정렬하고 어느 시점에서 함께 나열하려고합니다. 어떤 경우 std :: map을 사용하지 마십시오. 값을 별도로 정렬하는 두 개의 다른 std :: set (또는 중복 된 값을 허용하려는 경우 다중 집합)이 필요합니다. 그런 다음 두 지점을 반복합니다.

0

당신이 직접해야 할지도, 맵은 그런 값을 반복하지 않습니다. 하나의 옵션은 키와 값이 바뀌는 두 번째 맵을 사용하는 것입니다 (중복 값을 가질 수있는 경우 멀티 맵 사용).

0

두 세트/맵 및 대략 동일한 속도를 사용하는 것보다 오버 헤드가 적은 부스트 ​​멀티 인덱스를 사용해보십시오.