hash_map을 이용하여 CString이 들어가지 않는 경우가 있음.
해결 방법이 있을지 모르나 찾기 힘듬
그리고 VC에서 지원하는 hash_map이 생각보다 빠른 검색이 되지 않음.
2005버전 이상인 환경에서 개발 할 경우, hash map보다 CAtlMap을 추천.
[선언]
#include <atlcoll.h>
CAtlMap tmp<int, int>
[사용방법]
일반적인 map과는 조금 다름
*입력
tmp.SetAt(Key, Value);
tmp[Key] = Value; // 이 부분은 일반적인 map 입력과 같음
*삭제
tmp.RemoveKey(Key);
tmp.RemoveAll();
*검색
tmp.LookUp(Key, Return);
- Key 값을 넣으면 Return에 값을 넣어줌. 리턴값은 bool
위의 내용은 기본적인 CAtlMap의 사용법.
CAtlMap으로 바꿔도 Key값이 CString일 때 에러가 발생하는 경우도 있음.
이럴 때는 CString대신 CAtlString 사용을 추천.
CString과 똑같은 역활을 하므로 굳이 캐스팅할 필요도 없음.
예)
CAtlMap tmp<CAtlString, CAtlString>;
CString strKey = _T("안녕하세요.");
CString strVal = _T("반갑습니다.");
tmp.SetAt(strKey, strVal);
참조 - http://copynull.tistory.com/102
출처 - http://blog.naver.com/pokpoong82/40072891448
댓글 없음 :
댓글 쓰기