[STL] multimap.insert에서 에서 에러나는 이유를 모르겠습니다.

assa의 이미지

stl 튜토리얼,레퍼런스가이드2 를 보니까, (약간 바꿔서).

multimap<char *, char *>multimap_1;

typedef multimap_1::value_type ps;

char *a= "aaa";
multimap_1.insert(ps(a, a));

하던데요.

우선 1. typedef multimap_1::value_type ps; 에서 에러나구요

2.

 multimap<char *, set<char *> > multimap_1;

typedef pair<char *, set<char *> > ps;

//set<char *> tset에 값이 있다고 치자.
char *a= "aa";

multimap_1.insert(ps(a, tset));

하면 에러납니다...ㅠㅠ 머가 문제인지... 책을 봐도 모르겠고,

그냥 책을 확~ 잡아째고 싶은 심정입니다.
(특히 반복자.. iterator.. 그대로 번역하다니...ㅠㅠ 더 헤깔리게)

머가 이렇게 어렵죠?

C++할때 어렵다고 생각해보지 않았는데.. 쿨럭..

doldori의 이미지

assa wrote:
우선 1. typedef multimap_1::value_type ps; 에서 에러나구요

당연합니다. multimap_1은 변수 이름이지 타입(클래스) 이름이 아니니까요. 이렇게 바꾸세요.
typedef multimap<char *, char *>::value_type ps;
두 번째 코드는 tset을 선언하지 않아서 그런 것으로 보입니다.
 multimap<char *, set<char *> > multimap_1;

typedef pair<char *, set<char *> > ps;

set<char *> tset; // declare tset
char *a= "aa";

multimap_1.insert(ps(a, tset));
hey의 이미지

음. 반복자는 괜찮은 번역인데요. 이터레이터보다 이해하기도 쉽구요.


----------------------------
May the F/OSS be with you..