Aracılığıyla paylaş


Koleksiyon sýnýfýný seçme önerileri

Bu makalede, belirli uygulama gereksinimleriniz için bir koleksiyon sýnýfý seçmenize yardımcı olmak üzere tasarlanmış ayrıntılı bilgileri içerir.

Seçeceğiniz bir sınıfın bir gibi etkenlere bağlıdır:

  • Sınıf Şekil Özellikleri: sipariş, dizin oluşturma ve gösterildiği gibi performans Toplama şekli özellikleri daha sonra bu konudaki tabloda

  • C++ şablonları sınıfını kullanıp kullanmadığını

  • Olup topluluğun içinde depolanan öğeleri seri

  • Koleksiyon içinde saklanan öğeler için tanılama mi döküldü

  • Koleksiyon türü için güvenli olup olmadığı

Aşağıdaki tabloda, Toplama şekli özellikleri, kullanılabilir toplama şekilleri özelliklerini özetlemektedir.

  • 2 Ve 3 sütun, her şeklin sıralamasını tanımlamak ve özelliklere erişebilirsiniz.Tabloda öğeler eklenen ve silinen sipariş koleksiyonunda sıralamalarını belirler "sipariş" terimi anlamına gelir; Bu maddelerin içerikleri üzerinde sıralanır anlamına gelmez."Dizin" terimi, koleksiyondaki öğe benzediğini tipik bir dizideki öğelerin tamsayı bir dizini tarafından alınabilir anlamına gelir.

  • Her şeklin performans 4 ve 5 sütun açıklar.Koleksiyon birçok eklemeler gerektiren uygulamalar ekleme hızı özellikle önemli olabilir; diğer uygulamalar için arama hızı daha önemli olabilir.

  • Her şeklin yinelenen öğelere izin verip vermediğini 6 sütun açıklar.

Toplama şekli özellikleri

Şekil

Sipariş?

Dizine?

Öğe Ekle

Belirtilen öğe arama

Yinelenen öğeleri?

Liste

Evet

Hayyr

Hızlı

Yavaş

Evet

Dizi

Evet

İnt tarafından

Yavaş

Yavaş

Evet

Map

Hayyr

Anahtarının

Hızlı

Hızlı

(Anahtar) Evet (değerler)

Aşağıdaki tabloda, mfc koleksiyon sınıfları özelliklere, seçim için bir kılavuz olarak belirli mfc koleksiyon sınıfları diğer önemli özelliklerini özetlemektedir.MFC'ın belge öğelerini seri hale getirilebilir mi tercihiniz mi C++ şablonları temel sınıf tabanlı bağlı olabilir seri hale getirme mekanizması, öğelerini MFC'ın tanı dökümü alınıyor mekanizması mı döküldü veya sınıf denkliği olup — yani tür öğeler olup olmadığını garanti ve saklanan bir koleksiyon sınıfını esas alınan.

mfc koleksiyon sınıfları özellikleri

Sınıf

C++ kullanır.

templates

Olabilir

seri hale getirilmiş

Olabilir

döküldü

Değil

tür-güvenli

CArray

Evet

1 Evet

1 Evet

Hayyr

CByteArray

Hayyr

Evet

Evet

3 Evet

CDWordArray

Hayyr

Evet

Evet

3 Evet

CList

Evet

1 Evet

1 Evet

Hayyr

CMap

Evet

1 Evet

1 Evet

Hayyr

CMapPtrToPtr

Hayyr

Hayyr

Evet

Hayyr

CMapPtrToWord

Hayyr

Hayyr

Evet

Hayyr

CMapStringToOb

Hayyr

Evet

Evet

Hayyr

CMapStringToPtr

Hayyr

Hayyr

Evet

Hayyr

CMapStringToString

Hayyr

Evet

Evet

3 Evet

CMapWordToOb

Hayyr

Evet

Evet

Hayyr

CMapWordToPtr

Hayyr

Hayyr

Evet

Hayyr

CObArray

Hayyr

Evet

Evet

Hayyr

CObList

Hayyr

Evet

Evet

Hayyr

CPtrArray

Hayyr

Hayyr

Evet

Hayyr

CPtrList

Hayyr

Hayyr

Evet

Hayyr

CStringArray

Hayyr

Evet

Evet

3 Evet

CStringList

Hayyr

Evet

Evet

3 Evet

CTypedPtrArray

Evet

2 Bağlıdır.

Evet

Evet

CTypedPtrList

Evet

2 Bağlıdır.

Evet

Evet

CTypedPtrMap

Evet

2 Bağlıdır.

Evet

Evet

CUIntArray

Hayyr

Hayyr

Evet

3 Evet

CWordArray

Hayyr

Evet

Evet

3 Evet

1.Seri hale getirmek için açıkça koleksiyon nesnesinin çağırması gerekir Serialize işlev; Döküm için açıkça çağırmanız gerekir, Dump işlevi.Biçimini kullanamayan ar << collObj seri hale getirmek için veya form dmp<< collObj dökümünü almak için.

2.Serializability, temel alınan toplama türüne göre değişir.Örneğin yazılı işaretçi bir dizi temel alıyorsa, CObArray, seri hale getirilebilir; temel CPtrArray, seri hale getirilebilir değil.Genel olarak, "Ptr" sınıfları getirilemez.

3.Amaçlandığı gibi kullanmak bu sütunda Evet işaretliyse, nontemplate toplama sınıfı denkliği sağlanır.Bayt cinsinden depolar, örneğin, bir CByteArray, tür-güvenli dizisidir.Ancak karakterleri depolamak için kullanmak, tür güvenliği daha az belli olur.

Ayrıca bkz.

Görevler

Tüm bir toplamanın üyeleri erişme

Kavramlar

Koleksiyonlar

Şablon tabanlı sınıflar

Nasıl yapılır: bir tür-güvenli tahsilat yapmak