다음을 통해 공유


CRBMap 클래스

이 클래스는 Red-Black 이진 트리를 사용하여 매핑 구조를 나타냅니다.

구문

template <typename K,
          typename V,
          class KTraits = CElementTraits<K>,
          class VTraits = CElementTraits<V>>
class CRBMap : public CRBTree<K, V, KTraits, VTraits>

매개 변수

K
키 요소 형식입니다.

V
값 요소 형식입니다.

KTraits
키 요소를 복사하거나 이동하는 데 사용되는 코드입니다. 자세한 내용은 CElementTraits 클래스를 참조하세요.

VTraits
값 요소를 복사하거나 이동하는 데 사용되는 코드입니다.

멤버

공용 생성자

속성 설명
CRBMap::CRBMap 생성자입니다.
CRBMap::~CRBMap 소멸자입니다.

공용 메서드

이름 설명
CRBMap::Lookup 개체의 키 또는 값을 조회하려면 이 메서드를 CRBMap 호출합니다.
CRBMap::RemoveKey 키를 지정하여 개체에서 CRBMap 요소를 제거하려면 이 메서드를 호출합니다.
CRBMap::SetAt 맵에 요소 쌍을 삽입하려면 이 메서드를 호출합니다.

설명

CRBMap 에서는 지정된 형식의 매핑 배열을 지원하여 정렬된 키 요소 배열과 관련 값을 관리합니다. 각 키에는 연결된 값이 하나만 있을 수 있습니다. 요소(키 및 값으로 구성됨)는 CRBMap::SetAt 메서드를 사용하여 이진 트리 구조에 저장됩니다. CRBMap::RemoveKey 메서드를 사용하여 요소를 제거할 수 있습니다. 이 메서드는 지정된 키 값으로 요소를 삭제합니다.

CRBTree::GetHeadPosition, CRBTree::GetNext 및 CRBTree::GetNextValue같은 메서드를 사용하여 트리를 트래버스할 수 있습니다.

KTraitsVTraits 매개 변수는 요소를 복사하거나 이동하는 데 필요한 추가 코드를 포함하는 특성 클래스입니다.

CRBMap는 빨간색-검정 알고리즘을 사용하여 이진 트리를 구현하는 CRBTree에서 파생됩니다. CRBMultiMap 은 각 키에 대해 여러 값을 허용하는 변형입니다. 이 기능도 파생 CRBTree되므로 많은 기능을 .와 CRBMap공유합니다.

둘 다 CRBMap 에 대한 대안이며 CRBMultiMap CAtlMap 클래스에서 제공됩니다. 소수의 요소만 저장해야 하는 경우 CSimpleMap 클래스를 대신 사용하는 것이 좋습니다.

다양한 컬렉션 클래스 및 해당 기능 및 성능 특성에 대한 자세한 내용은 ATL 컬렉션 클래스를 참조 하세요.

상속 계층 구조

CRBTree

CRBMap

요구 사항

헤더: atlcoll.h

CRBMap::CRBMap

생성자입니다.

explicit CRBMap(size_t nBlockSize = 10) throw();

매개 변수

nBlockSize
블록 크기입니다.

설명

nBlockSize 매개 변수는 새 요소가 필요할 때 할당된 메모리 양에 대한 측정값입니다. 블록 크기가 클수록 메모리 할당 루틴에 대한 호출이 줄어들지만 더 많은 리소스를 사용합니다. 기본값은 한 번에 10 요소에 대한 공간을 할당합니다.

사용 가능한 다른 방법에 대한 자세한 내용은 기본 클래스 CRBTree 에 대한 설명서를 참조하세요.

예시

// Define a map object which has an
// integer key, a double value, and a
// block size of 5
CRBMap<int, double> myMap(5);

CRBMap::~CRBMap

소멸자입니다.

~CRBMap() throw();

설명

할당된 리소스를 해제합니다.

사용 가능한 다른 방법에 대한 자세한 내용은 기본 클래스 CRBTree 에 대한 설명서를 참조하세요.

CRBMap::Lookup

개체의 키 또는 값을 조회하려면 이 메서드를 CRBMap 호출합니다.

bool Lookup(KINARGTYPE key, VOUTARGTYPE value) const throw(...);
const CPair* Lookup(KINARGTYPE key) const throw();
CPair* Lookup(KINARGTYPE key) throw();

매개 변수

key
조회할 요소를 식별하는 키를 지정합니다.

value
조회된 값을 받는 변수입니다.

Return Value

키가 있으면 메서드의 첫 번째 형식이 true를 반환하고, 그렇지 않으면 false를 반환합니다. 두 번째 및 세 번째 양식은 CPair에 대한 포인터를 반환합니다.

설명

사용 가능한 다른 방법에 대한 자세한 내용은 기본 클래스 CRBTree 에 대한 설명서를 참조하세요.

예시

// Look up the value for a key of 0
double v;
myMap.Lookup(0,v);

CRBMap::RemoveKey

키를 지정하여 개체에서 CRBMap 요소를 제거하려면 이 메서드를 호출합니다.

bool RemoveKey(KINARGTYPE key) throw();

매개 변수

key
제거할 요소 쌍에 해당하는 키입니다.

Return Value

키가 발견되고 제거되면 true를 반환하고 실패하면 false를 반환합니다.

설명

사용 가능한 다른 방법에 대한 자세한 내용은 기본 클래스 CRBTree 에 대한 설명서를 참조하세요.

예시

// Remove an element, based on the key of 0
ATLVERIFY(myMap.RemoveKey(0) == true);

CRBMap::SetAt

맵에 요소 쌍을 삽입하려면 이 메서드를 호출합니다.

POSITION SetAt(
    KINARGTYPE key,
    VINARGTYPE value) throw(...);

매개 변수

key
개체에 추가할 키 값입니다 CRBMap .

value
개체에 추가할 값입니다 CRBMap .

Return Value

개체에서 키/값 요소 쌍의 CRBMap 위치를 반환합니다.

설명

SetAt 는 일치하는 키가 있으면 기존 요소를 대체합니다. 키를 찾을 수 없으면 새 키/값 쌍이 만들어집니다.

사용 가능한 다른 방법에 대한 자세한 내용은 기본 클래스 CRBTree 에 대한 설명서를 참조하세요.

예시

// Add an element to the map, with a key of 0
myMap.SetAt(0,1.1);

참고 항목

CRBTree 클래스
CAtlMap 클래스
CRBMultiMap 클래스
클래스 개요