Scott Meyers'ın Etkili STL'sine bakın. STL'nin nasıl kullanılacağını açıklamak iyidir.
Belirlenmiş / belirlenmemiş sayıda nesne saklamak istiyorsanız ve hiçbir zaman hiçbirini silmeyecekseniz, bir vektör istediğiniz şeydir. Bu bir C dizisinin varsayılan yedeğidir ve bir gibi çalışır, ancak taşmaz. Boyutunu önceden rezerv () ile de ayarlayabilirsiniz.
Belirsiz sayıda nesneyi saklamak istiyorsanız, ancak bunları ekleyip sileceksiniz, o zaman muhtemelen bir liste istiyorsunuz ... çünkü vektörden farklı olarak aşağıdaki öğeleri taşımadan bir öğeyi silebilirsiniz. Bununla birlikte, bir vektörden daha fazla bellek alır ve bir öğeye sırayla erişemezsiniz.
Bir grup öğeyi almak ve bu öğelerin yalnızca benzersiz değerlerini bulmak istiyorsanız, hepsini bir set halinde okumak bunu yapar ve sizin için de sıralar.
Çok sayıda anahtar / değer çiftiniz varsa ve bunları anahtarla sıralamak istiyorsanız, bir harita yararlı olur ... ancak anahtar başına yalnızca bir değer tutacaktır. Anahtar başına birden fazla değere ihtiyacınız varsa, haritadaki değeriniz olarak bir vektörünüz / listeniz olabilir veya bir çoklu harita kullanabilirsiniz.
STL'de değil, ancak STL'nin TR1 güncellemesinde: anahtarla arayacağınız çok sayıda anahtar / değer çiftiniz varsa ve bunların sırasını umursamıyorsanız, hash kullanmak istiyorum - ki bu tr1 :: unordered_map. Ben stdext :: hash_map denilen Visual C ++ 7.1 ile kullandım. Harita için O (log n) yerine O (1) aramasına sahiptir.