2011-04-06 4 views
13

하나의 키에 두 값을 매핑하는 가장 좋은 방법은 무엇입니까?std :: 하나의 키, 두 개의 값 매핑

즉 값과 부울이있는 항목입니다.

std::map<std::string, std::pair<std::string, bool> > myMap2 

을하지만 올바른 해결책은 아닌 것 같아 :

사용하여 시도했다. 이 일을 더 우아한 방법이 있습니까?

+7

'std :: pair <>'는 정상입니다. 당신의 관심사는 무엇입니까? – Keith

답변

7

실제로 이것이 정확한 해결책입니다. 일반적으로 std::pair 대신 std::pair 대신 std::pair이 두 개로 제한되는 균일 한 인터페이스의 경우 std::pair을 사용하거나 std:: 또는 std::tr1:: 구현을 제공하기에는 너무 오래된 컴파일러 인 경우 boost::tuple을 사용하는 것이 좋습니다.

+0

튜플 튜토리얼 ... 고마워요 – JonnyCplusplus

+2

튜플이 손에서 벗어나기 시작할 때 구조체가 ... –

+1

@Steve : 튜플에 두 개 이상의 항목이 포함되어있을 때 나타납니다. :) 튜플은 내용이 균등하게 형식화되지 않았거나 명백한 방식으로 구조화되지 않은 경우 읽을 수없는 코드를 승격시킵니다. 'iter-> second.get <6>()'코드는 지저분합니다. –

6

std::pair<>을 사용하거나 저장하려는 값이 들어있는 사용자 지정 구조체를 만듭니다. 대부분의 경우 후자를 사용합니다. 값의 이름은 firstsecond보다 구체적입니다.

1

일반적으로 간단한 mapValue 구조체/클래스를 생성합니다.

관련 문제