stl 멀티맵 사용중에 질문 드립니다.. 계속 안되네요..ㅠ
날개
multimapconst char *, ASEMesh * m_HierArchy; // 멀티맵 선언
////////////////멀티맵에 데이터 넣기 //////////////////////////
for(UINT i=0; im_SkinMeshCount; i++){
memset(SrcParent, NULL, 256);
memset(Src, NULL, 256);
strcpy(SrcParent, m_pSkin[i].GetParentName());
if(strlen(SrcParent) == 0)
strcpy(SrcParent, Top);
m_HierArchy.insert(make_pairconst char *const, ASEMesh *(SrcParent, &m_pSkin[i]));
}
//////////////////////////////////////////////////////////////
///////////////////입력된 멀티맵에서 데이터 가져오기////////////////////
pairmultimapconst char *, ASEMesh *::iterator, multimapconst char *, ASEMesh *::iterator it_pair;
char pTemp[256] = Top;
it_pair = m_HierArchy.equal_range( pTemp );
multimapconst char *, ASEMesh *::iterator it;
//////////////////////////////////////////////////////////////////////
멀티맵에 부모 이름을얻어오고 부모가 없으면 Top 이라고 설정해서 멀티맵의 키값으로 설정하고 있습니다.
들어갈때 디버그하면 제대로 들어가는걸로 확인이 되는데
it_pair 로 받아오면 제대로 읽지를 못합니다.
뭐가 문제일까요..???
-
흰우유
이것도 일단 해결은 했는데 또 무슨 문제가 발생할지 모르겠네요....
multimap의 Key 타입으로 char * 선은을 했는데 여기서 문제가 발생한 것 같습니다.
char * 대신 string으로 선언해서 넣으니 잘 되네요.
혼자 질문하고 혼자 댓글달고 쇼하는 느낌입니다 ㅎㅎㅎ;;; -
볼매
포인터를 읽어오는건 수정했습니다. SrcParent가 지역변수로 선언되서 메모리를 잃어버리네요. 동적할당으로 해결했습니다. 근데 다른 문제가 생기네요...
equal_range로 받아오는 it_pair의 first/lower_bound 값과 second/upper_bound 값이 같게 나옵니다.
멀티맵 안에 \Top\ 키값을 가진 데이터가 8개가 있는데 처음insert 된 데이터만 반환하네요...
답변좀 부탁드릴게요 고수분들.ㅠ