[ 선 언 ]

#include <atlcoll.h>

// Key 값이 문자형 일 경우

CAtlMap<CString, CImageData*, CStringElementTraits<CString>> m_tImage;

// 위의 조건을 제외한 선언

CAtlMap<int, CImageData*> m_tImage;

[ 등록 ]

m_tImage.SetAt( Key , Value );

[ 삭제 ]

m_tImage.RemoveKey( Key );

m_tImage.RemoveAll();

[ 검색 ]

m_tImage.LookUp( Key, Value ); // Key 값을 넣으면, Value 를 준다. 리턴값은 bool

CAtlMap<Key, Value>::CPair* pPair = m_tImage.LookUp( Key );

[ 시작 위치 ]

POSITION pos = m_tImage.GetStartPosition(); // iterator 라고 생각하면 된다.

[ 다음 위치 ]

m_tImage.GetNext(POSITON); // 리턴값 : CPair*

m_tImage.GetNextValue(POSITON); // 리턴값 : Value

[ 검색 응용 ]

POSITION pos = m_tImage.GetStartPosition();

CAtlMap<Key, Value>::CPair* pPair = NULL;
while (pos)
{
pPair = m_tImage.GetNext(pos);
}

POSITION pos = m_tImage.GetStartPosition();
while (pos)
{
CImageData* data = m_tImage.GetNextValue(pos);
}

--------------------------------------------------------------------------------------------------------------------------

나머지 다른 기능들도 있지만, 위의 내용만 알아도 충분히 알수 있는 내용들이라서 정리하지 않겠다.

[출처] CAtlMap 사용법 정리|작성자 스쿠프

 

 

지금, 서버 엔진쪽을 보고 있는데,  map 구조를 hash_map 으로 바꿔보고 다음 위의 CAtlMap으로도 적용시켜봐서

성능 테스트를 해봐야 할꺼 같다.

'C/C++언어' 카테고리의 다른 글

[ VC11-C++11 ] range base for - 1  (0) 2012.09.24
코드 최적화 팁  (0) 2012.09.10
MSXML 파싱  (0) 2012.07.03
프로그램 시간 측정  (0) 2012.03.21
버츄얼과 오버라이드 차이 Virtual? Override?  (0) 2012.03.06

+ Recent posts