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