카테고리

  • 안드로이드
  • IOS
  • MFC
  • JAVA
  • AWS
  • LAMP
  • 여행&사진
  • 이런저런생활
  • 2015년 8월 13일 목요일

    CAtlMap과 CAtlString, CString 사용

    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


    댓글 없음 :

    댓글 쓰기