Dizi, Liste ve Eşleme Sınıfları
Veri toplamlarını işlemek için, sınıf kitaplığı çeşitli nesne ve önceden tanımlanmış türleri barındırabilen bir koleksiyon sınıfları grubu (diziler, listeler ve haritalar) sağlar. Koleksiyonlar dinamik olarak boyutlandırılır. Bu sınıflar, Windows için yazılmış olsun veya olmasın herhangi bir programda kullanılabilir. Ancak, bunlar en çok uygulama çerçevesinde belge sınıflarınızı tanımlayan veri yapılarını uygulamak için kullanışlıdır. Bunlardan özel koleksiyon sınıflarını kolayca türetebilir veya şablon sınıflarını temel alarak oluşturabilirsiniz. Bu yaklaşımlar hakkında daha fazla bilgi için Koleksiyonlar makalesine bakın. Şablon koleksiyonu sınıflarının listesi için Diziler, Listeler ve Haritalar için Şablon Sınıfları makalesine bakın.
Diziler, bellekte bitişik olarak depolanan tek boyutlu veri yapılarıdır. Belirli bir öğenin bellek adresi, öğenin dizini bir öğenin boyutuyla çarpılarak ve sonucu dizinin temel adresine eklenerek hesaplanabildiği için çok hızlı rastgele erişimi destekler. Ancak diziye öğe eklemeniz gerekiyorsa diziler çok pahalıdır, çünkü eklenen öğeden sonra tüm dizinin eklenecek öğeye yer açmak için taşınması gerekir. Diziler gerektiğinde büyüyebilir ve küçülebilir.
Listeler dizilere benzer ancak çok farklı depolanır. Listedeki her öğe, önceki ve sonraki öğelere yönelik bir işaretçi de içerir ve bu da onu ikiye kat bağlantılı bir liste haline getirir. Öğeleri eklemek veya silmek çok hızlıdır çünkü bunu yapmak yalnızca birkaç işaretçiyi değiştirmeyi içerir. Ancak, tüm aramaların listenin sonundan birinde başlaması gerektiğinden, listede arama yapmak pahalı olabilir.
Haritalar bir anahtar değerini veri değeriyle ilişkilendirin. Örneğin, bir eşlemenin anahtarı bir dize ve bir listede işaretçi olan veriler olabilir. Eşlemeden size belirli bir dizeyle ilişkili işaretçiyi vermesini isteyebilirsiniz. Eşlemeler anahtar aramaları için karma tabloları kullandığından eşleme aramaları hızlıdır. Öğeleri eklemek ve silmek de hızlıdır. Haritalar genellikle diğer veri yapılarıyla yardımcı dizinler olarak kullanılır. MFC, Windows iletilerini bu iletinin işleyici işlevine yönelik bir işaretçiyle eşlemek için ileti eşlemesi olarak adlandırılan özel bir eşleme türü kullanır.