Koleksiyonlar
Microsoft Foundation Sınıf Kitaplığı, nesne gruplarını yönetmek için koleksiyon sınıfları sağlar. Bu sınıflar iki türdedir:
Dekont
Kodunuz zaten ortak olmayan koleksiyon sınıflarını kullanıyorsa, bunları kullanmaya devam edebilirsiniz. Kendi veri türleriniz için yeni tür güvenli koleksiyon sınıfları yazarsanız, daha yeni şablon tabanlı sınıfları kullanmanızı öneririz.
Koleksiyon Şekilleri
Koleksiyon sınıfı, "şekli" ve öğelerinin türleriyle karakterize edilir. Şekil, nesnelerin koleksiyon tarafından düzenlenip depolanma şeklini ifade eder. MFC üç temel koleksiyon şekli sağlar: listeler, diziler ve haritalar (sözlük olarak da bilinir). Belirli bir programlama sorununuz için en uygun koleksiyon şeklini seçebilirsiniz.
Sağlanan üç koleksiyon şeklinin her biri, bu konunun ilerleyen bölümlerinde kısaca açıklanmıştır. Programınızın en iyi özelliklerini belirlemenize yardımcı olacak şekillerin özelliklerini karşılaştırmak için bkz. Koleksiyon Sınıfı Seçme Öneriler.
List
list sınıfı, ikiye kat bağlantılı liste olarak uygulanan sıralı, dizinlenmemiş bir öğe listesi sağlar. Listenin "başı" ve "kuyruğu" vardır ve baş veya kuyruktan öğe ekleme veya çıkarma ya da ortaya öğe ekleme veya silme işlemleri çok hızlıdır.
Dizi
Dizi sınıfı dinamik olarak boyutlandırılmış, sıralı ve tamsayı dizinli bir nesne dizisi sağlar.
Harita (sözlük olarak da bilinir)
Eşleme, bir anahtar nesneyi bir değer nesnesiyle ilişkilendiren bir koleksiyondur.
Şablon Tabanlı Koleksiyon Sınıfları
Herhangi bir türdeki nesneleri içeren tür güvenli bir koleksiyon uygulamanın en kolay yolu, MFC şablon tabanlı sınıflardan birini kullanmaktır. Bu sınıfların örnekleri için bkz. MFC örneği COLLECT.
Aşağıdaki tabloda MFC şablon tabanlı koleksiyon sınıfları listelenmiştir.
Koleksiyon Şablonu Sınıfları
Koleksiyon içeriği | Diziler | Listeler | Haritalar |
---|---|---|---|
Herhangi bir türdeki nesne koleksiyonları | CArray |
CList |
CMap |
Herhangi bir türdeki nesnelere yönelik işaretçi koleksiyonları | CTypedPtrArray |
CTypedPtrList |
CTypedPtrMap |
Şablonlara Dayalı Olmayan Koleksiyon Sınıfları
Uygulamanız zaten MFC ortak olmayan sınıflar kullanıyorsa, bunları kullanmaya devam edebilirsiniz. Ancak, yeni koleksiyonlar için şablon tabanlı sınıfları kullanmanızı öneririz. Aşağıdaki tabloda, şablonları temel almayan MFC koleksiyon sınıfları listelenir.
Ortak Olmayan Koleksiyon Sınıfları
Diziler | Listeler | Haritalar |
---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
CMapStringToPtr |
|
CStringArray |
CMapStringToString |
|
CWordArray |
CMapWordToOb |
|
CUIntArray |
CMapWordToPtr |
Bir Koleksiyon Sınıfı Seçme için Öneriler MFC Koleksiyon Sınıfları tablosunun Özellikleri, MFC koleksiyon sınıflarını bu özellikler (şekil dışında) açısından açıklar:
Sınıfın C++ şablonları kullanıp kullanmadığı
Koleksiyonda depolanan öğelerin serileştirilip serileştirilemeyeceği
Koleksiyonda depolanan öğelerin tanılama için bırakılıp bırakılamayacağı
Koleksiyonun tür açısından güvenli olup olmadığı