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와 같은 메서드를 사용하여 트리를 트래버스할 수 있습니다.
KTraits 및 VTraits 매개 변수는 요소를 복사하거나 이동하는 데 필요한 추가 코드를 포함하는 특성 클래스입니다.
CRBMap
는 빨간색-검정 알고리즘을 사용하여 이진 트리를 구현하는 CRBTree에서 파생됩니다. CRBMultiMap 은 각 키에 대해 여러 값을 허용하는 변형입니다. 이 기능도 파생 CRBTree
되므로 많은 기능을 .와 CRBMap
공유합니다.
둘 다 CRBMap
에 대한 대안이며 CRBMultiMap
CAtlMap 클래스에서 제공됩니다. 소수의 요소만 저장해야 하는 경우 CSimpleMap 클래스를 대신 사용하는 것이 좋습니다.
다양한 컬렉션 클래스 및 해당 기능 및 성능 특성에 대한 자세한 내용은 ATL 컬렉션 클래스를 참조 하세요.
상속 계층 구조
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);