Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Koleksiyon sınıfları CMap, CListve öğeleri karşılaştırma, kopyalama ve CArray serileştirme gibi amaçlar için şablonlu genel yardımcı işlevlerini kullanır. , CMapve CListtabanlı CArraysınıfları uygulamanızın bir parçası olarak, haritanızda, listenizde veya dizinizde depolanan veri türüne göre uyarlanmış sürümlerle bu işlevleri gerektiği gibi geçersiz kılmalısınız. gibi SerializeElementsyardımcı işlevleri geçersiz kılma hakkında bilgi için Koleksiyonlar: Tür Açısından Güvenli Koleksiyon Yapma makalesine bakın. ve'nin ConstructElementsDestructElements kullanım dışı bırakıldığını unutmayın.
Microsoft Foundation Sınıf Kitaplığı, koleksiyon sınıflarınızı özelleştirmenize yardımcı olmak için afxtempl.h dosyasında aşağıdaki genel işlevleri sağlar:
Koleksiyon Sınıfı Yardımcıları
| Veri Akışı Adı | Açıklama |
|---|---|
| CompareElements | Öğelerin aynı olup olmadığını gösterir. |
| CopyElements | Öğeleri bir diziden diğerine kopyalar. |
| DumpElements | Akış odaklı tanılama çıkışı sağlar. |
| HashKey | Karma anahtarı hesaplar. |
| SerializeElements | Arşive veya arşivden öğeleri depolar veya alır. |
CompareElements
ve tarafından CList::Find doğrudan ve dolaylı olarak CMap::Lookup çağrılır CMap::operator[].
template<class TYPE, class ARG_TYPE>
BOOL AFXAPI
CompareElements(
const TYPE* pElement1,
const ARG_TYPE* pElement2);
Parametreler
TÜR
Karşılaştırılacak ilk öğenin türü.
pElement1
Karşılaştırılacak ilk öğenin işaretçisi.
ARG_TYPE
Karşılaştırılacak ikinci öğenin türü.
pElement2
Karşılaştırılacak ikinci öğe işaretçisi.
Dönüş Değeri
pElement1 tarafından işaret edilen nesne pElement2 tarafından işaret edilen nesneye eşitse sıfır olmayan; aksi takdirde 0.
Açıklamalar
Çağrılar CMap KEY ve CMap şablon parametrelerini kullanır.
Varsayılan uygulama, *pElement1 ve *pElement2 karşılaştırmasının sonucunu döndürür. Öğeleri uygulamanız için uygun bir şekilde karşılaştırabilmesi için bu işlevi geçersiz kılın.
C++ dili, basit türler (, ==, charvb.) için karşılaştırma işlecini (intfloat) tanımlar, ancak sınıflar ve yapılar için bir karşılaştırma işleci tanımlamaz. Bunu kullanan koleksiyon sınıflarından birini kullanmak CompareElements veya örnek oluşturmak istiyorsanız, karşılaştırma işlecini tanımlamanız veya uygun değerleri döndüren bir sürümle aşırı yükleme CompareElements uygulamanız gerekir.
Gereksinimler
Üst bilgi: afxtempl.h
CopyElements
Bu işlev doğrudan CArray::Append ve CArray::Copy tarafından çağrılır.
template<class TYPE>
void AFXAPI CopyElements(
TYPE* pDest,
const TYPE* pSrc,
INT_PTR nCount);
Parametreler
TÜR
Kopyalanacak öğelerin türünü belirten şablon parametresi.
pDest
Öğelerin kopyalanacağı hedefin işaretçisi.
pSrc
Kopyalanacak öğelerin kaynağına işaret eden işaretçi.
nCount
Kopyalanacak öğe sayısı.
Açıklamalar
Varsayılan uygulama, kopyalama işlemini gerçekleştirmek için basit atama işlecini ( = ) kullanır. Kopyalanan türün işleci= aşırı yüklenmiş değilse, varsayılan uygulama bit düzeyinde kopyalama gerçekleştirir.
Bu ve diğer yardımcı işlevleri uygulama hakkında bilgi için Koleksiyonlar: Tür Açısından Güvenli Koleksiyon Yapma makalesine bakın.
Gereksinimler
Üst bilgi afxtempl.h
DumpElements
Geçersiz kılındığında koleksiyonunuzun öğeleri için metin biçiminde akış odaklı tanılama çıkışı sağlar.
template<class TYPE>
void AFXAPI DumpElements(
CDumpContext& dc,
const TYPE* pElements,
INT_PTR nCount);
Parametreler
Dc
Döküm öğeleri için döküm bağlamı.
TÜR
Öğelerin türünü belirten şablon parametresi.
pElements
Atılacak öğelerin işaretçisi.
nCount
Atılacak öğe sayısı.
Açıklamalar
CArray::DumpDöküm derinliği 0'dan büyükse , CList::Dumpve CMap::Dump işlevleri bunu çağırır.
Varsayılan uygulama hiçbir şey yapmaz. Koleksiyonunuzun öğeleri öğesinden CObjecttüretilirse, geçersiz kılmanız genellikle koleksiyonun öğeleri aracılığıyla yinelenir ve sırayla her öğe için çağrılır Dump .
Gereksinimler
Üst bilgi afxtempl.h
HashKey
Verilen anahtar için bir karma değeri hesaplar.
template<class ARG_KEY>
AFX_INLINE UINT AFXAPI HashKey(ARG_KEY key);
Parametreler
ARG_KEY
Harita anahtarlarına erişmek için kullanılan veri türünü belirten şablon parametresi.
anahtar
Karma değeri hesaplanacak anahtar.
Dönüş Değeri
Anahtarın karma değeri.
Açıklamalar
Bu işlev ve tarafından CMap::RemoveKey doğrudan ve dolaylı olarak CMap::Lookup çağrılır CMap::operator[].
Varsayılan uygulama, anahtarı sağa dört konum kaydırarak bir karma değer oluşturur. Uygulamanız için uygun karma değerleri döndürmesi için bu işlevi geçersiz kılın.
Örnek
template <> UINT AFXAPI HashKey(unsigned __int64 key)
{
// Generate the hash value by XORing the lower 32 bits of the number
// with the upper 32 bits
return(UINT(key) ^ UINT(key >> 32));
}
Gereksinimler
Üst bilgi afxtempl.h
SerializeElements
CArray, CList ve CMap öğeleri seri hale getirmek için bu işlevi çağırır.
template<class TYPE>
void AFXAPI SerializeElements(CArchive& ar, TYPE* pElements, INT_PTR nCount);
Parametreler
TÜR
Öğelerin türünü belirten şablon parametresi.
Ar
Arşivle veya buradan arşivlene bir arşiv nesnesi.
pElements
Arşivlenen öğelerin işaretçisi.
nCount
Arşivlenen öğe sayısı
Açıklamalar
Varsayılan uygulama bit düzeyinde okuma veya yazma işlemi yapar.
Bu ve diğer yardımcı işlevleri uygulama hakkında bilgi için Koleksiyonlar: Tür Açısından Güvenli Koleksiyon Yapma makalesine bakın.
Örnek
Koleksiyonlar: Tür Açısından Güvenli Koleksiyon Yapma makalesindeki örneklere bakın.
Gereksinimler
Üst bilgi afxtempl.h
Ayrıca bkz.
Makrolar ve Genel Ayarlar
CMap Sınıfı
CList Sınıfı
CArray Sınıfı