2012-06-28 4 views
0

Multimap containing pairs? 발견,하지만삽입은 ++

가 어떻게 pair에 두 개의 문자열을 삽입 할에 큰 도움이되지입니까? 아래, 내 두 실패한 시도.

multimap<string, pair<string,string> > mymm; 
mymm["Alex"] = std::pair<"000","000">; //errors 
mymm.insert(pair<string, pair<string, string> > 
      ("Alex", std::pair<"000","000">); // errors out as well 

Visual Studio 2010 (32 비트)을 사용하고 있습니다. 감사 !

답변

5
mymm.insert(make_pair("Alex",make_pair("000","000"))); 

이 경우 문자열의하면 inserting--하는 변수의 타입을 나타낸다 하나 이상의 경기.

make_pair는 유형을 명시 적으로 지정하지 않고도 쌍을 만드는 편리한 방법입니다. make_pair를 사용하지 않고 다음과 같이해야합니다 :

mymm.insert(pair<string,pair<string,string> >("Alex",pair<string,string>("000","000"))); 
+0

감사합니다. 'map'은'[]'연산자를 사용하여 값을 삽입합니다. 나는'멀티 맵 '이 같은 방식으로 동작한다고 생각하고 있었다. – newprint

+1

std :: pair <"000","000">을 호출하면 실제 오류를 설명 할 가치가 있습니다. 그는 템플릿 인자와 생성자 인자를 섞어 놓고 있습니다. 다중 인자에 대한 API를 모르는 것보다 근본적인 문제를 보여줍니다. – abarnert

+0

@abarnert : 아마도 내가 추가 한 예제가 도움이 될 것입니다. –

2

std::pair<string,string>("000","000")해야합니다. 이있을 수 있기 때문에

코드는 < 및> 사이에 포함되는, multimap은 연산자 []를 사용하여 검색을 허용하지 않는

+0

'mymm [ "Alex"]'는 무의미합니다. – ildjarn

+0

ye,이 코드에서도 오류가 발생합니다. – newprint

관련 문제