다음을 통해 공유


Recommendations for Choosing a Collection 클래스

디자인 컬렉션 클래스에 맞게 특정 응용 프로그램을 선택 하는 데 도움이 되는 자세한 정보가 나와 있습니다.

컬렉션 클래스의 선택 요인에 따라 다릅니다.

  • 클래스 셰이프의 기능: 순서, 색인 및 성능, 같이 있는 컬렉션 모양 특징 이 항목의 뒷부분에 나오는 표

  • C + + 템플릿 클래스를 사용 하는지 여부

  • 컬렉션에 저장 된 요소를 serialize 할 수 있는지 여부

  • 진단 유틸리티에 대 한 컬렉션에 저장 된 요소에 덤프할 수 있습니다 여부

  • 컬렉션의 형식이 안전한 지 여부

다음 표에서 컬렉션 모양 특징, 셰이프 사용 가능한 컬렉션의 특징을 요약 한 것입니다.

  • 2 및 3 번 열 각 모양의 순서에 대해 설명 및 특성에 액세스 합니다.테이블에서 순서 대로 항목이 삽입 및 삭제 된 컬렉션의 순서가 결정 되는 용어 "주문"을 의미 합니다. 이 항목의 내용을 정렬 됩니다 의미 하지는 않습니다.용어는 "인덱스" 컬렉션에 있는 항목을 일반 배열의 항목 처럼 정수 인덱스로 검색할 수 의미 합니다.

  • 4 및 5 번 열 각 모양의 성능에 설명 합니다.컬렉션에 대 한 많은 삽입 해야 하는 응용 프로그램에서는 삽입 속도가 특히 중요 한 수 있습니다. 다른 응용 프로그램의 경우 조회 속도가 더 중요할 수도 있습니다.

  • 6 열 각 셰이프 중복 요소가 허용 되는지 여부를 나타냅니다.

컬렉션 모양 특징

모양

정렬 된?

인덱스?

요소를 삽입 합니다.

지정 된 요소 검색

요소 중복 가능

List

아니요

빠른

느리게

배열

정수 기준

느리게

느리게

아니요

키로

빠른

빠른

(키) 예 (값)

다음 표에서 MFC 컬렉션 클래스의 특징, 선택에 대 한 지침으로 특정 MFC 컬렉션 클래스의 다른 중요 한 특징을 요약 한 것입니다.MFC의 문서를 통해 해당 요소를 serialize 할 수 있는지 여부를 클래스 C++ 템플릿을 기반으로 됩니다에서 달라질 수 있습니다 serialization 메커니즘, MFC의 진단 덤프 메커니즘을 통해 해당 요소에 덤프할 수 있습니다 여부 또는 클래스의 형식이 안전한 지 여부-즉, 요소의 종류를 보장할 수 있는 여부와 저장 클래스에 기초 하 여 컬렉션에서 검색 합니다.

MFC 컬렉션 클래스의 특징

클래스

C + +를 사용합니다.

템플릿

수 있습니다.

serialize됨

수 있습니다.

덤프

Is

형식 안전

CArray

예 1

예 1

아니요

CByteArray

아니요

예 3

CDWordArray

아니요

예 3

CList

예 1

예 1

아니요

CMap

예 1

예 1

아니요

CMapPtrToPtr

아니요

아니요

아니요

CMapPtrToWord

아니요

아니요

아니요

CMapStringToOb

아니요

아니요

CMapStringToPtr

아니요

아니요

아니요

CMapStringToString

아니요

예 3

CMapWordToOb

아니요

아니요

CMapWordToPtr

아니요

아니요

아니요

CObArray

아니요

아니요

CObList

아니요

아니요

CPtrArray

아니요

아니요

아니요

CPtrList

아니요

아니요

아니요

CStringArray

아니요

예 3

CStringList

아니요

예 3

CTypedPtrArray

2 달라 집니다.

CTypedPtrList

2 달라 집니다.

CTypedPtrMap

2 달라 집니다.

CUIntArray

아니요

아니요

예 3

CWordArray

아니요

예 3

1.Serialize 할 컬렉션 개체를 명시적으로 호출 해야 Serialize 작동 합니다. 덤프를 명시적으로 호출 해야 해당 Dump 함수.폼을 사용할 수 없습니다 ar << collObj serialize 또는 폼 dmp<< collObj 덤프 합니다.

2.순차성을 내부 컬렉션 형식에 따라 달라 집니다.형식화 된 포인터 배열을 기반으로 하는 경우 예를 들어, CObArray가 serialize 할 수 있습니다. 기반으로 하는 경우 CPtrArray를 직렬화 할 수 없습니다.일반적으로 "Ptr" 클래스를 직렬화 할 수 없습니다.

3.목적 대로 사용 예에이 열을 표시 하면 비템플릿 기반 컬렉션 클래스 형식 안전적입니다.예를 들어, 바이트를 저장 하는 경우는 CByteArray, 안전한 형식의 배열입니다.하지만 문자를 저장할 수 있으면 형식 안정성이 불확실해 집니다.

참고 항목

작업

컬렉션의 모든 멤버에 액세스

개념

컬렉션

템플릿 기반 클래스

방법: 형식 안전 컬렉션을 확인 하십시오.