CMapStringToOb
수업
고유한 CString
개체를 CObject
포인터에 매핑하는 사전 컬렉션 클래스입니다.
구문
class CMapStringToOb : public CObject
멤버
공용 생성자
속성 | 설명 |
---|---|
CMapStringToOb::CMapStringToOb |
생성자입니다. |
공용 메서드
이름 | 설명 |
---|---|
CMapStringToOb::GetCount |
이 맵의 요소 수를 반환합니다. |
CMapStringToOb::GetHashTableSize |
해시 테이블의 현재 요소 수를 결정합니다. |
CMapStringToOb::GetNextAssoc |
반복할 다음 요소를 가져옵니다. |
CMapStringToOb::GetSize |
이 맵의 요소 수를 반환합니다. |
CMapStringToOb::GetStartPosition |
첫 번째 요소의 위치를 반환합니다. |
CMapStringToOb::HashKey |
지정된 키의 해시 값을 계산합니다. |
CMapStringToOb::InitHashTable |
해시 테이블을 초기화합니다. |
CMapStringToOb::IsEmpty |
빈 맵 조건(요소 없음)에 대한 테스트입니다. |
CMapStringToOb::Lookup |
void 포인터 키를 기반으로 void 포인터를 조회합니다. 가리키는 엔터티가 아닌 포인터 값이 키 비교에 사용됩니다. |
CMapStringToOb::LookupKey |
지정된 키 값과 연결된 키에 대한 참조를 반환합니다. |
CMapStringToOb::RemoveAll |
이 맵에서 모든 요소를 제거합니다. |
CMapStringToOb::RemoveKey |
키로 지정된 요소를 제거합니다. |
CMapStringToOb::SetAt |
맵에 요소를 삽입합니다. 는 일치하는 키가 있으면 기존 요소를 대체합니다. |
Public 연산자
속성 | 설명 |
---|---|
CMapStringToOb::operator [ ] |
맵에 요소를 삽입합니다. 연산자 대체는 SetAt 다음과 같습니다. |
설명
맵에 쌍(요소)을 CString
- CObject*
삽입한 후에는 문자열 또는 값을 키로 사용하여 쌍을 효율적으로 검색하거나 CString
삭제할 수 있습니다. 지도의 모든 요소를 반복할 수도 있습니다.
형식 POSITION
의 변수는 모든 맵 변형에서 대체 항목 액세스에 사용됩니다. 항목을 POSITION
"기억"하고 지도를 반복하는 데 사용할 수 있습니다. 이 반복은 키 값별로 순차적이라고 생각할 수 있습니다. 그것이 아니야. 검색된 요소의 시퀀스는 확정되지 않습니다.
CMapStringToOb
는 serialization 및 요소 덤프를 지원하기 위해 IMPLEMENT_SERIAL
매크로를 통합합니다. 맵이 오버로드된 insertion( <<
) 연산자 또는 Serialize
멤버 함수를 사용하여 보관에 저장되면 각 요소가 차례로 serialize됩니다.
맵에 있는 개별 요소(값 및 CObject
내용)CString
의 진단 덤프가 필요한 경우 덤프 컨텍스트의 깊이를 1 이상으로 설정해야 합니다.
개체가 CMapStringToOb
삭제되거나 요소가 제거되면 CString
개체와 포인터가 CObject
제거됩니다. 포인터에서 CObject
참조하는 개체는 제거되지 않습니다.
지도 클래스 파생은 목록 파생과 유사합니다. 특수 용도 목록 클래스의 파생에 대한 일러스트레이션은 컬렉션 문서를 참조하세요.
상속 계층 구조
CMapStringToOb
요구 사항
머리글: afxcoll.h
CMapStringToOb::CMapStringToOb
빈 CString
-to-map CObject*
을 생성합니다.
CMapStringToOb(INT_PTR nBlockSize = 10);
매개 변수
nBlockSize
맵을 확장하기 위한 메모리 할당 세분성을 지정합니다.
설명
맵이 커짐에 따라 메모리가 항목 단위 nBlockSize
로 할당됩니다.
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb:: CMapStringToOb
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
CMapPtrToPtr( INT_PTR nBlockSize = 10 ); |
CMapPtrToWord |
CMapPtrToWord( INT_PTR nBlockSize = 10 ); |
CMapStringToPtr |
CMapStringToPtr( INT_PTR nBlockSize = 10 ); |
CMapStringToString |
CMapStringToString( INT_PTR nBlockSize = 10 ); |
CMapWordToOb |
CMapWordToOb( INT_PTR nBlockSize = 10 ); |
CMapWordToPtr |
MapWordToPtr( INT_PTR nBlockSize = 10 ); |
예시
CMapStringToOb map(20); // Map on the stack with blocksize of 20
CMapStringToOb *pm = new CMapStringToOb; // Map on the heap
// with default blocksize
모든 컬렉션 예제에 사용되는 클래스 목록을 CAge
참조 CObList::CObList
하세요.
CMapStringToOb::GetCount
맵에 있는 요소 수를 결정합니다.
INT_PTR GetCount() const;
Return Value
이 맵의 요소 수입니다.
설명
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::GetCount
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
INT_PTR GetCount() const; |
CMapPtrToWord |
INT_PTR GetCount() const; |
CMapStringToPtr |
INT_PTR GetCount() const; |
CMapStringToString |
INT_PTR GetCount() const; |
CMapWordToOb |
INT_PTR GetCount() const; |
CMapWordToPtr |
INT_PTR GetCount() const; |
예시
모든 컬렉션 예제에 사용되는 클래스 목록을 CAge
참조 CObList::CObList
하세요.
CMapStringToOb map;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Homer"), new CAge(36));
ASSERT(map.GetCount() == 2);
CMapStringToOb::GetHashTableSize
해시 테이블의 현재 요소 수를 결정합니다.
UINT GetHashTableSize() const;
Return Value
해시 테이블의 요소 수를 반환합니다.
설명
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::GetHashTableSize
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
UINT GetHashTableSize() const; |
CMapPtrToWord |
UINT GetHashTableSize() const; |
CMapStringToPtr |
UINT GetHashTableSize() const; |
CMapStringToString |
UINT GetHashTableSize() const; |
CMapWordToOb |
UINT GetHashTableSize() const; |
CMapWordToPtr |
UINT GetHashTableSize() const; |
CMapStringToOb::GetNextAssoc
맵 요소를 검색 rNextPosition
한 다음 맵의 다음 요소를 참조하도록 업데이트합니다 rNextPosition
.
void GetNextAssoc(
POSITION& rNextPosition,
CString& rKey,
CObject*& rValue) const;
매개 변수
rNextPosition
이전 GetNextAssoc
또는 GetStartPosition
호출에서 반환된 POSITION 값에 대한 참조를 지정합니다.
rKey
검색된 요소(문자열)의 반환된 키를 지정합니다.
rValue
검색된 요소( CObject
포인터)의 반환된 값을 지정합니다. 이 매개 변수에 대한 자세한 내용은 비고를 참조하세요.
설명
이 함수는 맵의 모든 요소를 반복하는 데 가장 유용합니다. 위치 시퀀스가 반드시 키 값 시퀀스와 동일하지는 않습니다.
검색된 요소가 맵의 마지막 요소인 경우 새 값 rNextPosition
이 로 설정 NULL
됩니다.
매개 변수의 rValue
경우 다음 예제와 같이 컴파일러에 필요한 개체 형식 CObject*&
으로 캐스팅해야 합니다.
CObject *ob;
map.GetNextAssoc(pos, key, (CObject *&)ob);
템플릿을 기반으로 하는 맵의 GetNextAssoc
경우는 그렇지 않습니다.
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::GetNextAssoc
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr | void GetNextAssoc( POSITION& rNextPosition , void*& rKey , void*& rValue ) const; |
CMapPtrToWord | void GetNextAssoc( POSITION& rNextPosition , void*& rKey , WORD& rValue ) const; |
CMapStringToPtr | void GetNextAssoc( POSITION& rNextPosition , CString& rKey , void*& rValue ) const; |
CMapStringToString | void GetNextAssoc( POSITION& rNextPosition , CString& rKey , CString& rValue ) const; |
CMapWordToOb | void GetNextAssoc( POSITION& rNextPosition , WORD& rKey , CObject*& rValue ) const; |
CMapWordToPtr | void GetNextAssoc( POSITION& rNextPosition , WORD& rKey , void*& rValue ) const; |
예시
모든 컬렉션 예제에 사용되는 클래스 목록을 CAge
참조 CObList::CObList
하세요.
CMapStringToOb map;
POSITION pos;
CString key;
CAge *pa;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11));
map.SetAt(_T("Homer"), new CAge(36));
map.SetAt(_T("Marge"), new CAge(35));
// Iterate through the entire map, dumping both name and age.
for (pos = map.GetStartPosition(); pos != NULL;)
{
map.GetNextAssoc(pos, key, (CObject *&)pa);
#ifdef _DEBUG
afxDump << key << _T(" : ") << pa << _T("\n");
#endif
}
이 프로그램의 결과는 다음과 같습니다.
Lisa : a CAge at $4724 11
Marge : a CAge at $47A8 35
Homer : a CAge at $4766 36
Bart : a CAge at $45D4 13
CMapStringToOb::GetSize
지도 요소의 수를 반환합니다.
INT_PTR GetSize() const;
Return Value
맵의 항목 수입니다.
설명
이 메서드를 호출하여 맵의 요소 수를 검색합니다.
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::GetSize
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
INT_PTR GetSize() const; |
CMapPtrToWord |
INT_PTR GetSize() const; |
CMapStringToPtr |
INT_PTR GetSize() const; |
CMapStringToString |
INT_PTR GetSize() const; |
CMapWordToOb |
INT_PTR GetSize() const; |
CMapWordToPtr |
INT_PTR GetSize() const; |
예시
CMapStringToOb map;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Homer"), new CAge(36));
ASSERT(map.GetSize() == 2);
CMapStringToOb::GetStartPosition
호출에 전달할 수 있는 POSITION
값을 반환하여 맵 반복을 시작합니다 GetNextAssoc
.
POSITION GetStartPosition() const;
Return Value
POSITION
맵을 반복하기 위한 시작 위치 또는 NULL
맵이 비어 있는 경우를 나타내는 값입니다.
설명
반복 시퀀스는 예측할 수 없습니다. 따라서 "맵의 첫 번째 요소"는 특별한 의미가 없습니다.
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::GetStartPosition
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
POSITION GetStartPosition() const; |
CMapPtrToWord |
POSITION GetStartPosition() const; |
CMapStringToPtr |
POSITION GetStartPosition() const; |
CMapStringToString |
POSITION GetStartPosition() const; |
CMapWordToOb |
POSITION GetStartPosition() const; |
CMapWordToPtr |
POSITION GetStartPosition() const; |
예시
CMapStringToOb::GetNextAssoc
에 대한 예를 참조하세요.
CMapStringToOb::HashKey
지정된 키의 해시 값을 계산합니다.
UINT HashKey(LPCTSTR key) const;
매개 변수
key
해시 값을 계산할 키입니다.
Return Value
키의 해시 값
설명
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::HashKey
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
UINT HashKey( void *key ) const; |
CMapPtrToWord |
UINT HashKey( void *key ) const; |
CMapStringToString |
UINT HashKey( LPCTSTR key ) const; |
CMapStringToPtr |
UINT HashKey( LPCTSTR key ) const; |
CMapWordToOb |
UINT HashKey( WORD key ) const; |
CMapWordToPtr |
UINT HashKey( WORD key ) const; |
CMapStringToOb::InitHashTable
해시 테이블을 초기화합니다.
void InitHashTable(
UINT hashSize,
BOOL bAllocNow = TRUE);
매개 변수
hashSize
해시 테이블의 항목 수입니다.
bAllocNow
이면 TRUE
초기화 시 해시 테이블을 할당하고, 그렇지 않으면 필요할 때 테이블이 할당됩니다.
설명
최상의 성능을 위해 해시 테이블 크기는 소수여야 합니다. 충돌을 최소화하려면 크기가 가장 큰 예상 데이터 집합보다 약 20% 커야 합니다.
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::InitHashTable
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapPtrToWord |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapStringToString |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapStringToPtr |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapWordToOb |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapWordToPtr |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapStringToOb::IsEmpty
맵이 비어 있는지 여부를 확인합니다.
BOOL IsEmpty() const;
Return Value
이 맵에 요소가 없으면 0이 아닙니다. 그렇지 않으면 0입니다.
예시
RemoveAll
에 대한 예를 참조하세요.
설명
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb:: IsEmpty
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
BOOL IsEmpty() const; |
CMapPtrToWord |
BOOL IsEmpty() const; |
CMapStringToPtr |
BOOL IsEmpty() const; |
CMapStringToString |
BOOL IsEmpty() const; |
CMapWordToOb |
BOOL IsEmpty() const; |
CMapWordToPtr |
BOOL IsEmpty() const; |
CMapStringToOb::Lookup
값을 기반으로 포인터 CObject
를 반환합니다 CString
.
BOOL Lookup(
LPCTSTR key,
CObject*& rValue) const;
매개 변수
key
조회할 요소를 식별하는 문자열 키를 지정합니다.
rValue
조회된 요소에서 반환된 값을 지정합니다.
Return Value
요소가 발견된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
Lookup
에서는 해시 알고리즘을 사용하여 정확히 일치하는 키( CString
값)를 사용하여 지도 요소를 빠르게 찾습니다.
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::LookUp
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
BOOL Lookup( void *key , void*& rValue ) const; |
CMapPtrToWord |
BOOL Lookup( void *key , WORD& rValue ) const; |
CMapStringToPtr |
BOOL Lookup( LPCTSTR key , void*& rValue ) const; |
CMapStringToString |
BOOL Lookup( LPCTSTR key , CString& rValue ) const; |
CMapWordToOb |
BOOL Lookup( WORD key , CObject*& rValue ) const; |
CMapWordToPtr |
BOOL Lookup( WORD key , void*& rValue ) const; |
예시
모든 컬렉션 예제에 사용되는 클래스 목록을 CAge
참조 CObList::CObList
하세요.
CMapStringToOb map;
CAge *pa;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11));
map.SetAt(_T("Homer"), new CAge(36));
map.SetAt(_T("Marge"), new CAge(35));
ASSERT(map.Lookup(_T("Lisa"), (CObject *&)pa)); // Is "Lisa" in the map?
ASSERT(*pa == CAge(11)); // Is she 11?
CMapStringToOb::LookupKey
지정된 키 값과 연결된 키에 대한 참조를 반환합니다.
BOOL LookupKey(
LPCTSTR key,
LPCTSTR& rKey) const;
매개 변수
key
조회할 요소를 식별하는 문자열 키를 지정합니다.
rKey
연결된 키에 대한 참조입니다.
Return Value
키가 발견된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
연결된 요소를 맵에서 제거한 후 또는 지도가 제거된 후에 사용하는 경우 키에 대한 참조를 사용하는 것이 안전하지 않습니다.
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb:: LookupKey
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapStringToPtr |
BOOL LookupKey( LPCTSTR key , LPCTSTR& rKey ) const; |
CMapStringToString |
BOOL LookupKey( LPCTSTR key , LPCTSTR& rKey ) const; |
CMapStringToOb::operator [ ]
멤버 함수를 편리하게 대체합니다 SetAt
.
CObject*& operator[ ](lpctstr key);
Return Value
개체에 대한 포인터에 대한 CObject
참조이거나 NULL
지도가 비어 있거나 key
범위를 벗어난 경우입니다.
설명
따라서 할당 문( l-value
)의 왼쪽에서만 사용할 수 있습니다. 지정된 키를 가진 map 요소가 없으면 새 요소가 만들어집니다.
지도에서 키를 찾을 수 없을 가능성이 있으므로 이 연산자에 해당하는 "오른쪽"(r-value
)은 없습니다. 요소 검색에 Lookup
멤버 함수를 사용합니다.
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::operator []
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr | void*& operator[](void *key ); |
CMapPtrToWord | WORD& operator[](void *key ); |
CMapStringToPtr | void*& operator[](lpctstr key ); |
CMapStringToString | CString& operator[](lpctstr key ); |
CMapWordToOb | CObject*& operator[](word key ); |
CMapWordToPtr | void*& operator[](word key ); |
예시
모든 컬렉션 예제에 사용되는 클래스 목록을 CAge
참조 CObList::CObList
하세요.
CMapStringToOb map;
map[_T("Bart")] = new CAge(13);
map[_T("Lisa")] = new CAge(11);
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("Operator [] example: ") << &map << _T("\n");
#endif
이 프로그램의 결과는 다음과 같습니다.
Operator [] example: A CMapStringToOb with 2 elements
[Lisa] = a CAge at $4A02 11
[Bart] = a CAge at $497E 13
CMapStringToOb::RemoveAll
이 맵에서 모든 요소를 제거하고 키 개체를 CString
제거합니다.
void RemoveAll();
설명
각 키에서 참조하는 개체는 CObject
제거되지 않습니다. RemoveAll
참조된 CObject
개체가 제거되지 않도록 하려면 이 함수로 인해 메모리 누수가 발생할 수 있습니다.
맵이 이미 비어 있는 경우 함수가 올바르게 작동합니다.
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::RemoveAll
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
void RemoveAll(); |
CMapPtrToWord |
void RemoveAll(); |
CMapStringToPtr |
void RemoveAll(); |
CMapStringToString |
void RemoveAll(); |
CMapWordToOb |
void RemoveAll(); |
CMapWordToPtr |
void RemoveAll(); |
예시
모든 컬렉션 예제에 사용되는 클래스 목록을 CAge
참조 CObList::CObList
하세요.
{
CMapStringToOb map;
CAge age1(13); // Two objects on the stack
CAge age2(36);
map.SetAt(_T("Bart"), &age1);
map.SetAt(_T("Homer"), &age2);
ASSERT(map.GetCount() == 2);
map.RemoveAll(); // CObject pointers removed; objects not removed.
ASSERT(map.GetCount() == 0);
ASSERT(map.IsEmpty());
} // The two CAge objects are deleted when they go out of scope.
CMapStringToOb::RemoveKey
제공된 키에 해당하는 맵 항목을 조회합니다. 키를 찾은 경우 항목을 제거합니다.
BOOL RemoveKey(LPCTSTR key);
매개 변수
key
지도 조회에 사용되는 문자열을 지정합니다.
Return Value
항목이 발견되고 성공적으로 제거된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
개체가 다른 곳에서 삭제되지 않으면 CObject
메모리 누수의 원인이 될 수 있습니다.
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::RemoveKey
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
BOOL RemoveKey( void *key ); |
CMapPtrToWord |
BOOL RemoveKey( void *key ); |
CMapStringToPtr |
BOOL RemoveKey( LPCTSTR key ); |
CMapStringToString |
BOOL RemoveKey( LPCTSTR key ); |
CMapWordToOb |
BOOL RemoveKey( WORD key ); |
CMapWordToPtr |
BOOL RemoveKey( WORD key ); |
예시
모든 컬렉션 예제에 사용되는 클래스 목록을 CAge
참조 CObList::CObList
하세요.
CMapStringToOb map;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11));
map.SetAt(_T("Homer"), new CAge(36));
map.SetAt(_T("Marge"), new CAge(35));
map.RemoveKey(_T("Lisa")); // Memory leak: CAge object not
// deleted.
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("RemoveKey example: ") << &map << _T("\n");
#endif
이 프로그램의 결과는 다음과 같습니다.
RemoveKey example: A CMapStringToOb with 3 elements
[Marge] = a CAge at $49A0 35
[Homer] = a CAge at $495E 36
[Bart] = a CAge at $4634 13
CMapStringToOb::SetAt
기본은 맵에 요소를 삽입하는 것을 의미합니다.
void SetAt(
LPCTSTR key,
CObject* newValue);
매개 변수
key
새 요소의 키인 문자열을 지정합니다.
newValue
새 요소의 CObject
값인 포인터를 지정합니다.
설명
첫째, 키를 조회합니다. 키를 찾은 경우 해당 값이 변경됩니다. 그렇지 않으면 새 키-값 요소가 만들어집니다.
다음 표에서는 다음과 유사한 다른 멤버 함수를 CMapStringToOb::SetAt
보여 줍니다.
클래스 | 멤버 함수 |
---|---|
CMapPtrToPtr |
void SetAt( void *key , void *newValue ); |
CMapPtrToWord |
void SetAt( void *key , WORD newValue ); |
CMapStringToPtr |
void SetAt( LPCTSTR key , void *newValue ); |
CMapStringToString |
void SetAt( LPCTSTR key , LPCTSTR newValue ); |
CMapWordToOb |
void SetAt( WORD key , CObject *newValue ); |
CMapWordToPtr |
void SetAt( WORD key , void *newValue ); |
예시
모든 컬렉션 예제에 사용되는 클래스 목록을 CAge
참조 CObList::CObList
하세요.
CMapStringToOb map;
CAge *pa;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11)); // Map contains 2
// elements.
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("before Lisa's birthday: ") << &map << _T("\n");
#endif
if (map.Lookup(_T("Lisa"), (CObject *&)pa))
{ // CAge 12 pointer replaces CAge 11 pointer.
map.SetAt(_T("Lisa"), new CAge(12));
delete pa; // Must delete CAge 11 to avoid memory leak.
}
#ifdef _DEBUG
afxDump << _T("after Lisa's birthday: ") << &map << _T("\n");
#endif
이 프로그램의 결과는 다음과 같습니다.
before Lisa's birthday: A CMapStringToOb with 2 elements
[Lisa] = a CAge at $493C 11
[Bart] = a CAge at $4654 13
after Lisa's birthday: A CMapStringToOb with 2 elements
[Lisa] = a CAge at $49C0 12
[Bart] = a CAge at $4654 13
참고 항목
CObject
클래스
계층 구조 차트
CMapPtrToPtr
수업
CMapPtrToWord
수업
CMapStringToPtr
수업
CMapStringToString
수업
CMapWordToOb
수업
CMapWordToPtr
수업