[ 선 언 ]
#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 |