CAtlMap Sınıfı
Bu sınıf, eşleme nesnesi oluşturmak ve yönetmek için yöntemler sağlar.
Sözdizimi
template <typename K,
typename V,
class KTraits = CElementTraits<K>,
class VTraits = CElementTraits<V>>
class CAtlMap
Parametreler
K
Anahtar öğe türü.
V
Değer öğesi türü.
KTraits
Anahtar öğeleri kopyalamak veya taşımak için kullanılan kod. Daha fazla ayrıntı için bkz . CElementTraits Sınıfı .
VTraits
Değer öğelerini kopyalamak veya taşımak için kullanılan kod.
Üyeler
Genel Tür Tanımları
Veri Akışı Adı | Açıklama |
---|---|
CAtlMap::KINARGTYPE | Bir anahtar giriş bağımsız değişkeni olarak geçirildiğinde kullanılan tür |
CAtlMap::KOUTARGTYPE | Bir anahtar çıkış bağımsız değişkeni olarak döndürülürken kullanılan tür. |
CAtlMap::VINARGTYPE | Bir değer giriş bağımsız değişkeni olarak geçirildiğinde kullanılan tür. |
CAtlMap::VOUTARGTYPE | Bir değer çıkış bağımsız değişkeni olarak geçirildiğinde kullanılan tür. |
Genel Sınıflar
Veri Akışı Adı | Açıklama |
---|---|
CAtlMap::CPair Sınıfı | Anahtar ve değer öğelerini içeren bir sınıf. |
CPair Veri Üyeleri
Veri Akışı Adı | Açıklama |
---|---|
CPair::m_key | Anahtar öğesini depolayarak veri üyesi. |
CPair::m_value | Değer öğesini depolayarak veri üyesi. |
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CAtlMap::CAtlMap | Oluşturucu. |
CAtlMap::~CAtlMap | Yok edici. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CAtlMap::AssertValid | geçerli değilse CAtlMap bir ASSERT'a neden olmak için bu yöntemi çağırın. |
CAtlMap::D isableAutoRehash | Nesnenin otomatik olarak yeniden sıkışmasını devre dışı bırakmak için bu yöntemi çağırın CAtlMap . |
CAtlMap::EnableAutoRehash | Nesnenin otomatik olarak yeniden çalışmasını etkinleştirmek için bu yöntemi çağırın CAtlMap . |
CAtlMap::GetAt | Öğesini eşlemede belirtilen bir konumda döndürmek için bu yöntemi çağırın. |
CAtlMap::GetCount | Eşlemedeki öğe sayısını almak için bu yöntemi çağırın. |
CAtlMap::GetHashTableSize | Eşlemenin karma tablosundaki bölme sayısını belirlemek için bu yöntemi çağırın. |
CAtlMap::GetKeyAt | nesnesinde belirtilen konumda depolanan anahtarı almak için bu yöntemi çağırın CAtlMap . |
CAtlMap::GetNext | Nesnesinde depolanan sonraki öğe çiftine bir işaretçi almak için bu yöntemi çağırın CAtlMap . |
CAtlMap::GetNextAssoc | Yineleme için sonraki öğeyi alır. |
CAtlMap::GetNextKey | Nesneden sonraki anahtarı almak için bu yöntemi çağırın CAtlMap . |
CAtlMap::GetNextValue | Nesneden sonraki değeri almak için bu yöntemi çağırın CAtlMap . |
CAtlMap::GetStartPosition | Eşleme yinelemesi başlatmak için bu yöntemi çağır. |
CAtlMap::GetValueAt | Nesnede belirli bir konumda depolanan değeri almak için bu yöntemi çağırın CAtlMap . |
CAtlMap::InitHashTable | Karma tabloyu başlatmak için bu yöntemi çağırın. |
CAtlMap::IsEmpty | Boş bir eşleme nesnesini test etmek için bu yöntemi çağır. |
CAtlMap::Lookup | Nesnedeki anahtarları veya değerleri aramak için bu yöntemi çağırın CAtlMap . |
CAtlMap::Rehash | Nesneyi yeniden silmek için bu yöntemi çağırın CAtlMap . |
CAtlMap::RemoveAll | Nesneden tüm öğeleri kaldırmak için bu yöntemi çağırın CAtlMap . |
CAtlMap::RemoveAtPos | nesnesinde verilen konumdaki öğesini kaldırmak için bu yöntemi çağırın CAtlMap . |
CAtlMap::RemoveKey | Anahtarı verilen nesneden CAtlMap bir öğeyi kaldırmak için bu yöntemi çağırın. |
CAtlMap::SetAt | Eşlemeye bir öğe çifti eklemek için bu yöntemi çağırın. |
CAtlMap::SetOptimalLoad | Nesnenin en uygun yükünü ayarlamak için bu yöntemi çağırın CAtlMap . |
CAtlMap::SetValueAt | Nesnede belirli bir konumda depolanan değeri değiştirmek için bu yöntemi çağırın CAtlMap . |
Ortak İşleçler
Veri Akışı Adı | Açıklama |
---|---|
CAtlMap::operator[] | öğesinin yerini alır veya öğesine CAtlMap yeni bir öğe ekler. |
Açıklamalar
CAtlMap
, belirli bir türe sahip eşleme dizisi için destek sağlar ve sıralanmamış bir anahtar öğe dizisini ve bunların ilişkili değerlerini yönetir. Öğeler (anahtar ve değerden oluşan) bir karma algoritması kullanılarak depolanır ve bu sayede büyük miktarda veri verimli bir şekilde depolanabilir ve alınabilir.
KTraits ve VTraits parametreleri, öğeleri kopyalamak veya taşımak için gereken ek kodları içeren nitelik sınıflarıdır.
CAtlMap
alternatifi CRBMap sınıfı tarafından sunulur. CRBMap
anahtar/değer çiftlerini de depolar, ancak farklı performans özellikleri gösterir. Öğe eklemek, anahtar aramak veya nesneden CRBMap
bir anahtarı silmek için geçen süre sıra günlüğüne (n) göredir; burada n öğe sayısıdır. için CAtlMap
bu işlemlerin tümü genellikle sabit bir zaman alır, ancak en kötü durum senaryoları n sırasına göre olabilir. Bu nedenle, tipik bir durumda, CAtlMap
daha hızlıdır.
ile arasındaki CRBMap
CAtlMap
diğer fark, depolanan öğeler arasında yinelenirken belirginleşir. içinde CRBMap
, öğeler sıralı bir düzende ziyaret edilir. içinde CAtlMap
öğeler sıralı değildir ve hiçbir düzen çıkarılamaz.
Az sayıda öğe depolanması gerektiğinde bunun yerine CSimpleMap sınıfını kullanmayı göz önünde bulundurun.
Daha fazla bilgi için bkz . ATL Koleksiyon Sınıfları.
Gereksinimler
Üst bilgi: atlcoll.h
CAtlMap::AssertValid
Nesne geçerli değilse bir ASSERT'a neden olmak için bu yöntemi çağırın CAtlMap
.
void AssertValid() const;
Açıklamalar
Hata ayıklama derlemelerinde, nesne geçerli değilse bu yöntem bir ASSERT'a CAtlMap
neden olur.
Örnek
CAtlMap::CAtlMap örneğine bakın.
CAtlMap::CAtlMap
Oluşturucu.
CAtlMap(
UINT nBins = 17,
float fOptimalLoad = 0.75f,
float fLoThreshold = 0.25f,
float fHiThreshold = 2.25f,
UINT nBlockSize = 10) throw ();
Parametreler
nBins
Depolanan öğelere işaretçi sağlayan bölmelerin sayısı. Bölmelerin açıklaması için bu konunun devamında yer alan Açıklamalar bölümüne bakın.
fOptimalLoad
En uygun yük oranı.
fLoThreshold
Yük oranı için daha düşük eşik.
fHiThreshold
Yük oranı için üst eşik.
nBlockSize
Blok boyutu.
Açıklamalar
CAtlMap
önce anahtar üzerinde bir karma algoritması kullanarak bir dizin oluşturarak depolanan tüm öğelerine başvurur. Bu dizin, depolanan öğelere yönelik bir işaretçi içeren bir "bin" öğesine başvurur. Bölme zaten kullanılıyorsa, sonraki öğelere erişmek için bir bağlı liste oluşturulur. Bir listede geçiş yapmak, doğru öğeye doğrudan erişmekten daha yavaştır ve bu nedenle eşleme yapısının depolama gereksinimlerini performansla dengelemesi gerekir. Çoğu durumda iyi sonuçlar vermek için varsayılan parametreler seçilmiştir.
Yük oranı, bölme sayısının eşleme nesnesinde depolanan öğe sayısına oranıdır. Eşleme yapısı yeniden hesaplandığında, gerekli bölme sayısını hesaplamak için fOptimalLoad parametre değeri kullanılır. Bu değer CAtlMap::SetOptimalLoad yöntemi kullanılarak değiştirilebilir.
fLoThreshold parametresi, eşlemenin en uygun boyutunu yeniden hesaplamadan önce CAtlMap
yük oranının ulaşabileceği düşük değerdir.
fHiThreshold parametresi, nesne eşlemenin en uygun boyutunu yeniden hesaplamadan önce CAtlMap
yük oranının ulaşabileceği üst değerdir.
Bu yeniden hesaplama işlemi (yeniden düzenleme olarak bilinir) varsayılan olarak etkindir. Bu işlemi devre dışı bırakmak istiyorsanız, bir kerede çok fazla veri girerken CAtlMap::D isableAutoRehash yöntemini çağırın. CAtlMap::EnableAutoRehash yöntemiyle yeniden etkinleştirin.
nBlockSize parametresi, yeni bir öğe gerektiğinde ayrılan bellek miktarının ölçüsüdür. Daha büyük blok boyutları bellek ayırma yordamlarına yapılan çağrıları azaltır, ancak daha fazla kaynak kullanır.
Verilerin depolanabilmesi için önce CAtlMap::InitHashTable çağrısıyla karma tablosunun başlatılması gerekir.
Örnek
// Create a map which stores a double
// value using an integer key
CAtlMap<int, double> mySinTable;
int i;
// Initialize the Hash Table
mySinTable.InitHashTable(257);
// Add items to the map
for (i = 0; i < 90; i++)
mySinTable[i] = sin((double)i);
// Confirm the map is valid
mySinTable.AssertValid();
// Confirm the number of elements in the map
ATLASSERT(mySinTable.GetCount() == 90);
// Remove elements with even key values
for (i = 0; i < 90; i += 2)
mySinTable.RemoveKey(i);
// Confirm the number of elements in the map
ATLASSERT(mySinTable.GetCount() == 45);
// Walk through all the elements in the map.
// First, get start position.
POSITION pos;
int key;
double value;
pos = mySinTable.GetStartPosition();
// Now iterate the map, element by element
while (pos != NULL)
{
key = mySinTable.GetKeyAt(pos);
value = mySinTable.GetNextValue(pos);
}
CAtlMap::~CAtlMap
Yok edici.
~CAtlMap() throw();
Açıklamalar
Ayrılan tüm kaynakları serbesttir.
CAtlMap::CPair Sınıfı
Anahtar ve değer öğelerini içeren bir sınıf.
class CPair : public __POSITION
Açıklamalar
Bu sınıf, eşleme yapısında depolanan anahtar ve değer öğelerine erişmek için CAtlMap::GetNext ve CAtlMap::Lookup yöntemleri tarafından kullanılır.
CAtlMap::D isableAutoRehash
Nesnenin otomatik olarak yeniden sıkışmasını devre dışı bırakmak için bu yöntemi çağırın CAtlMap
.
void DisableAutoRehash() throw();
Açıklamalar
Otomatik yeniden azaltma etkinleştirildiğinde (varsayılan olarak budur), yük değeri (bölme sayısının dizide depolanan öğe sayısına oranı) eşlemenin oluşturulduğu sırada belirtilen en yüksek veya en düşük değerleri aşması durumunda karma tablodaki bölme sayısı otomatik olarak yeniden hesaplanır.
DisableAutoRehash
en çok haritaya aynı anda çok sayıda öğe eklendiğinde kullanışlıdır. Sınırlar her aşıldığında yeniden azaltma işlemini tetikleme yerine, öğelerini çağırmak DisableAutoRehash
ve son olarak CAtlMap::EnableAutoRehash çağrısı yapmak daha verimli olur.
CAtlMap::EnableAutoRehash
Nesnenin otomatik olarak yeniden çalışmasını etkinleştirmek için bu yöntemi çağırın CAtlMap
.
void EnableAutoRehash() throw();
Açıklamalar
Otomatik yeniden azaltma etkinleştirildiğinde (varsayılan olarak budur), yük değeri (bölme sayısının dizide depolanan öğe sayısına oranı) eşlemenin oluşturulduğu sırada belirtilen en yüksek veya en düşük değerleri aşması durumunda karma tablodaki bölme sayısı otomatik olarak yeniden hesaplanır.
EnableAutoRefresh
genellikle CAtlMap::D isableAutoRehash çağrısının ardından kullanılır.
CAtlMap::GetAt
Öğesini eşlemede belirtilen bir konumda döndürmek için bu yöntemi çağırın.
void GetAt(
POSITION pos,
KOUTARGTYPE key,
VOUTARGTYPE value) const;
CPair* GetAt(POSITION& pos) throw();
Parametreler
Pos
Önceki CAtlMap::GetNextAssoc veya CAtlMap::GetStartPosition çağrısı tarafından döndürülen konum sayacı.
key
Harita anahtarının türünü belirten şablon parametresi.
value
Harita değerinin türünü belirten şablon parametresi.
Dönüş Değeri
Eşlem içinde depolanan geçerli anahtar/değer öğesi çiftine bir işaretçi döndürür.
Açıklamalar
Hata ayıklama derlemelerinde, pos NULL'a eşitse bir onay hatası oluşur.
CAtlMap::GetCount
Eşlemedeki öğe sayısını almak için bu yöntemi çağırın.
size_t GetCount() const throw();
Dönüş Değeri
Eşleme nesnesindeki öğe sayısını döndürür. Tek bir öğe bir anahtar/değer çiftidir.
Örnek
CAtlMap::CAtlMap örneğine bakın.
CAtlMap::GetHashTableSize
Eşlemenin karma tablosundaki bölme sayısını belirlemek için bu yöntemi çağırın.
UINT GetHashTableSize() const throw();
Dönüş Değeri
Karma tablodaki bölme sayısını döndürür. Açıklama için bkz . CAtlMap::CAtlMap .
CAtlMap::GetKeyAt
nesnesinde belirtilen konumda depolanan anahtarı almak için bu yöntemi çağırın CAtlMap
.
const K& GetKeyAt(POSITION pos) const throw();
Parametreler
Pos
Önceki CAtlMap::GetNextAssoc veya CAtlMap::GetStartPosition çağrısı tarafından döndürülen konum sayacı.
Dönüş Değeri
Nesnede verilen konumda depolanan anahtara CAtlMap
başvuru döndürür.
Örnek
CAtlMap::CAtlMap örneğine bakın.
CAtlMap::GetNext
Nesnesinde depolanan sonraki öğe çiftine bir işaretçi almak için bu yöntemi çağırın CAtlMap
.
CPair* GetNext(POSITION& pos) throw();
const CPair* GetNext(POSITION& pos) const throw();
Parametreler
Pos
Önceki CAtlMap::GetNextAssoc veya CAtlMap::GetStartPosition çağrısı tarafından döndürülen konum sayacı.
Dönüş Değeri
Eşlem içinde depolanan bir sonraki anahtar/değer öğesi çiftine bir işaretçi döndürür. Pos konum sayacı her çağrıdan sonra güncelleştirilir. Alınan öğe eşlemenin son öğesiyse, pos NULL olarak ayarlanır.
CAtlMap::GetNextAssoc
Yineleme için sonraki öğeyi alır.
void GetNextAssoc(
POSITION& pos,
KOUTARGTYPE key,
VOUTARGTYPE value) const;
Parametreler
Pos
Önceki CAtlMap::GetNextAssoc veya CAtlMap::GetStartPosition çağrısı tarafından döndürülen konum sayacı.
key
Harita anahtarının türünü belirten şablon parametresi.
value
Harita değerinin türünü belirten şablon parametresi.
Açıklamalar
Pos konum sayacı her çağrıdan sonra güncelleştirilir. Alınan öğe eşlemenin son öğesiyse, pos NULL olarak ayarlanır.
CAtlMap::GetNextKey
Nesneden sonraki anahtarı almak için bu yöntemi çağırın CAtlMap
.
const K& GetNextKey(POSITION& pos) const throw();
Parametreler
Pos
Önceki CAtlMap::GetNextAssoc veya CAtlMap::GetStartPosition çağrısı tarafından döndürülen konum sayacı.
Dönüş Değeri
Haritadaki bir sonraki anahtara başvuru döndürür.
Açıklamalar
Geçerli konum sayacını ( pos) güncelleştirir. Eşlemede başka girdi yoksa konum sayacı NULL olarak ayarlanır.
CAtlMap::GetNextValue
Nesneden sonraki değeri almak için bu yöntemi çağırın CAtlMap
.
V& GetNextValue(POSITION& pos) throw();
const V& GetNextValue(POSITION& pos) const throw();
Parametreler
Pos
Önceki CAtlMap::GetNextAssoc veya CAtlMap::GetStartPosition çağrısı tarafından döndürülen konum sayacı.
Dönüş Değeri
Eşlemedeki bir sonraki değere başvuru döndürür.
Açıklamalar
Geçerli konum sayacını ( pos) güncelleştirir. Eşlemede başka girdi yoksa konum sayacı NULL olarak ayarlanır.
Örnek
CAtlMap::CAtlMap örneğine bakın.
CAtlMap::GetStartPosition
Eşleme yinelemesi başlatmak için bu yöntemi çağır.
POSITION GetStartPosition() const throw();
Dönüş Değeri
Başlangıç konumunu döndürür veya eşleme boşsa NULL döndürülür.
Açıklamalar
Yöntemine geçirilebilen bir POSITION değeri döndürerek eşleme yinelemesi başlatmak için bu yöntemi çağırın GetNextAssoc
.
Not
Yineleme sırası tahmin edilebilir değil
Örnek
CAtlMap::CAtlMap örneğine bakın.
CAtlMap::GetValueAt
Nesnede belirli bir konumda depolanan değeri almak için bu yöntemi çağırın CAtlMap
.
V& GetValueAt(POSITION pos) throw();
const V& GetValueAt(POSITION pos) const throw();
Parametreler
Pos
Önceki CAtlMap::GetNextAssoc veya CAtlMap::GetStartPosition çağrısı tarafından döndürülen konum sayacı.
Dönüş Değeri
nesnesinde verilen konumda depolanan değere CAtlMap
başvuru döndürür.
CAtlMap::InitHashTable
Karma tabloyu başlatmak için bu yöntemi çağırın.
bool InitHashTable(
UINT nBins,
bool bAllocNow = true);
Parametreler
nBins
Karma tablo tarafından kullanılan bölme sayısı. Açıklama için bkz . CAtlMap::CAtlMap .
bAllocNow
Belleğin ne zaman ayrılması gerektiğini gösteren bayrak.
Dönüş Değeri
Başarılı başlatmada TRUE, hatada YANLIŞ döndürür.
Açıklamalar
InitHashTable
karma tablosunda herhangi bir öğe depolanmadan önce çağrılmalıdır. Bu yöntem açıkça çağrılmazsa, oluşturucu tarafından CAtlMap
belirtilen bölme sayısı kullanılarak bir öğe ilk kez eklendiğinde otomatik olarak çağrılır. Aksi takdirde, eşleme nBins parametresi tarafından belirtilen yeni bölme sayısı kullanılarak başlatılır.
bAllocNow parametresi false ise, karma tablo için gereken bellek ilk gerekli olana kadar ayrılmaz. Bu, haritanın kullanılıp kullanılmayacağı belirsizse yararlı olabilir.
Örnek
CAtlMap::CAtlMap örneğine bakın.
CAtlMap::IsEmpty
Boş bir eşleme nesnesini test etmek için bu yöntemi çağır.
bool IsEmpty() const throw();
Dönüş Değeri
Eşleme boşsa TRUE, aksi takdirde YANLIŞ döndürür.
CAtlMap::KINARGTYPE
Bir anahtar giriş bağımsız değişkeni olarak geçirildiğinde kullanılan tür.
typedef KTraits::INARGTYPE KINARGTYPE;
CAtlMap::KOUTARGTYPE
Bir anahtar çıkış bağımsız değişkeni olarak döndürülürken kullanılan tür.
typedef KTraits::OUTARGTYPE KOUTARGTYPE;
CAtlMap::Lookup
Nesnedeki anahtarları veya değerleri aramak için bu yöntemi çağırın CAtlMap
.
bool Lookup(KINARGTYPE key, VOUTARGTYPE value) const;
const CPair* Lookup(KINARGTYPE key) const throw();
CPair* Lookup(KINARGTYPE key) throw();
Parametreler
key
Aranacak öğeyi tanımlayan anahtarı belirtir.
value
Arama değerini alan değişken.
Dönüş Değeri
Yöntemin ilk biçimi, anahtar bulunursa true, aksi takdirde false döndürür. İkinci ve üçüncü formlar, CAtlMap::GetNext vb. çağrıları için konum olarak kullanılabilecek bir CPair işaretçisi döndürür.
Açıklamalar
Lookup
verilen anahtar parametresiyle tam olarak eşleşen bir anahtar içeren eşleme öğesini hızla bulmak için bir karma algoritması kullanır.
CAtlMap::operator []
öğesinin yerini alır veya öğesine CAtlMap
yeni bir öğe ekler.
V& operator[](kinargtype key) throw();
Parametreler
key
Eklenecek veya değiştirilecek öğenin anahtarı.
Dönüş Değeri
Verilen anahtarla ilişkili değere başvuru döndürür.
Örnek
Anahtar zaten varsa, öğesi değiştirilir. Anahtar yoksa yeni bir öğe eklenir. CAtlMap::CAtlMap örneğine bakın.
CAtlMap::Rehash
Nesneyi yeniden silmek için bu yöntemi çağırın CAtlMap
.
void Rehash(UINT nBins = 0);
Parametreler
nBins
Karma tabloda kullanılacak yeni bölme sayısı. Açıklama için bkz . CAtlMap::CAtlMap .
Açıklamalar
nBins 0 ise, CAtlMap
haritadaki öğe sayısına ve en uygun yük ayarına göre makul bir sayı hesaplar. Normalde yeniden oluşturma işlemi otomatiktir, ancak CAtlMap::D isableAutoRehash çağrıldıysa, bu yöntem gerekli yeniden boyutlandırmayı gerçekleştirir.
CAtlMap::RemoveAll
Nesneden tüm öğeleri kaldırmak için bu yöntemi çağırın CAtlMap
.
void RemoveAll() throw();
Açıklamalar
Öğeleri depolamak CAtlMap
için kullanılan belleği boşaltarak nesnesini temizler.
CAtlMap::RemoveAtPos
nesnesinde verilen konumdaki öğesini kaldırmak için bu yöntemi çağırın CAtlMap
.
void RemoveAtPos(POSITION pos) throw();
Parametreler
Pos
Önceki CAtlMap::GetNextAssoc veya CAtlMap::GetStartPosition çağrısı tarafından döndürülen konum sayacı.
Açıklamalar
Belirtilen konumda depolanan anahtar/değer çiftini kaldırır. öğesini depolamak için kullanılan bellek serbesttir. Pos tarafından başvuruda bulunan POSITION geçersiz olur ve haritadaki diğer öğelerin POSITION değeri geçerli kalırken, aynı sırayı korumaları gerekmez.
CAtlMap::RemoveKey
Anahtarı verilen nesneden CAtlMap
bir öğeyi kaldırmak için bu yöntemi çağırın.
bool RemoveKey(KINARGTYPE key) throw();
Parametreler
key
Kaldırmak istediğiniz öğe çiftine karşılık gelen anahtar.
Dönüş Değeri
Anahtar bulunur ve kaldırılırsa TRUE, hata durumunda YANLIŞ döndürür.
Örnek
CAtlMap::CAtlMap örneğine bakın.
CAtlMap::SetAt
Eşlemeye bir öğe çifti eklemek için bu yöntemi çağırın.
POSITION SetAt(
KINARGTYPE key,
VINARGTYPE value);
Parametreler
key
Nesneye CAtlMap
eklenecek anahtar değeri.
value
Nesneye CAtlMap
eklenecek değer.
Dönüş Değeri
Nesnedeki anahtar/değer öğesi çiftinin CAtlMap
konumunu döndürür.
Açıklamalar
SetAt
eşleşen bir anahtar bulunursa mevcut bir öğeyi değiştirir. Anahtar bulunamazsa yeni bir anahtar/değer çifti oluşturulur.
CAtlMap::SetOptimalLoad
Nesnenin en uygun yükünü ayarlamak için bu yöntemi çağırın CAtlMap
.
void SetOptimalLoad(
float fOptimalLoad,
float fLoThreshold,
float fHiThreshold,
bool bRehashNow = false);
Parametreler
fOptimalLoad
En uygun yük oranı.
fLoThreshold
Yük oranı için daha düşük eşik.
fHiThreshold
Yük oranı için üst eşik.
bRehashNow
Karma tablosunun yeniden hesaplanması gerekip gerekmediğini gösteren bayrak.
Açıklamalar
Bu yöntem nesne için CAtlMap
en uygun yük değerini yeniden tanımlar. Çeşitli parametrelerin tartışması için bkz . CAtlMap::CAtlMap . bRehashNow true ise ve öğe sayısı en düşük ve en yüksek değerlerin dışındaysa karma tablo yeniden hesaplanır.
CAtlMap::SetValueAt
Nesnede belirli bir konumda depolanan değeri değiştirmek için bu yöntemi çağırın CAtlMap
.
void SetValueAt(
POSITION pos,
VINARGTYPE value);
Parametreler
Pos
Önceki CAtlMap::GetNextAssoc veya CAtlMap::GetStartPosition çağrısı tarafından döndürülen konum sayacı.
value
Nesneye CAtlMap
eklenecek değer.
Açıklamalar
Nesnede belirtilen konumda CAtlMap
depolanan değer öğesini değiştirir.
CAtlMap::VINARGTYPE
Bir değer giriş bağımsız değişkeni olarak geçirildiğinde kullanılan tür.
typedef VTraits::INARGTYPE VINARGTYPE;
CAtlMap::VOUTARGTYPE
Bir değer çıkış bağımsız değişkeni olarak geçirildiğinde kullanılan tür.
typedef VTraits::OUTARGTYPE VOUTARGTYPE;
CAtlMap::CPair::m_key
Anahtar öğesini depolayarak veri üyesi.
const K m_key;
Parametreler
K
Anahtar öğe türü.
CAtlMap::CPair::m_value
Değer öğesini depolayarak veri üyesi.
V m_value;
Parametreler
V
Değer öğesi türü.