2012-06-23 6 views
0

가능한 중복을 모든 키의 값 목록을 얻는 방법 :
stl::multimap - how do i get groups of data?STL의 multimap은 일 -과 multimap에

는 내가 뭘 원하는 값의 목록을 계산하는 것이다 멀티 맵에 저장된 모든 키.

+0

를 시도? '멀티 맵 (multimap) '을 사용하는 방법에 대한 기본적인 연구를 해본 적이 있습니까? –

+0

내 질문을 이해하셨습니까? 당신이 대답을 안다면 나는 듣고 기뻐할 것입니다 ... –

+0

예, 답을 알고 있지만 게으른, 잘 조사되지 않은 질문이라고 생각하기 때문에 대답하지 않습니다. 당신이 노력했다면 당신이 대답을 쉽게 찾을 수 있습니다. "stl multimap"에 대한 Google 및 ** 처음 결과 **로 멀티 맵에서 반복하는 방법을 ** http://www.sgi.com/tech/stl/Multimap.html –

답변

1

equal_range(); 지정된 키가있는 항목의 | 위를 설명하는] 복자 쌍을 리턴합니다. 그런

+0

감사합니다. 그러나 모든 키를 반복하는 방법은 무엇입니까? –

+0

@MarcoMasci : 아마도 나는 당신의 원래 질문을 오해하고 있습니다. 특정 키에 해당하는 모든 값을 알고 싶어하는 것 같습니다. 나는 정확하게 이해합니까? –

+0

아니요 : 키가 저장되어 있는지 모르겠습니다. 멀티 맵에 저장된 모든 키를 열거하고 모든 키에 대해 연관된 값을 수집하려고합니다. –

0

뭔가 일반적인 질문에

multimap<string, int> m; 
vector<int> values; 

for (multimap<string, int>::iterator it = m.begin(); it != m.end(); ++it) 
{ 
    values.push_back((*it).second); 
} 
1

일반적인 대답을 작동합니다입니다 : 당신은 무엇을

template<class KEY, class VALUE> 
std::vector<VALUE> getValues(const std::multimap<KEY,VALUE>& aMap){ 
    std::vector<VALUE> values; 
    for(multimap<KEY,VALUE>::const_iterator it=aMap.begin(), end=aMap.end();it!=end;++it){ 
     values.push_back((*it).second); 
    } 
    return values; 
}