Aracılığıyla paylaş


CObArray Sınıf

İşaretçi dizilerini CObject destekler.

Sözdizimi

class CObArray : public CObject

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CObArray::CObArray İşaretçiler için CObject boş bir dizi oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CObArray::Add Dizinin sonuna bir öğe ekler; gerekirse diziyi büyütür.
CObArray::Append Diziye başka bir dizi ekler; gerekirse diziyi büyütür.
CObArray::Copy Diziye başka bir dizi kopyalar; gerekirse diziyi büyütür.
CObArray::ElementAt Dizi içindeki öğe işaretçisine geçici bir başvuru döndürür.
CObArray::FreeExtra Kullanılmayan tüm belleği geçerli üst sınırın üzerinde serbest bırakır.
CObArray::GetAt Belirli bir dizindeki değeri döndürür.
CObArray::GetCount Bu dizideki öğelerin sayısını alır.
CObArray::GetData Dizideki öğelere erişime izin verir. olabilir NULL.
CObArray::GetSize Bu dizideki öğelerin sayısını alır.
CObArray::GetUpperBound En büyük geçerli dizini döndürür.
CObArray::InsertAt Belirtilen dizine bir öğe (veya başka bir dizideki tüm öğeler) ekler.
CObArray::IsEmpty Dizinin boş olup olmadığını belirler.
CObArray::RemoveAll Bu dizideki tüm öğeleri kaldırır.
CObArray::RemoveAt Belirli bir dizindeki bir öğeyi kaldırır.
CObArray::SetAt Belirli bir dizinin değerini ayarlar; dizisinin büyümesine izin verilmiyor.
CObArray::SetAtGrow Belirli bir dizinin değerini ayarlar; gerekirse diziyi büyütür.
CObArray::SetSize Bu dizide yer alan öğelerin sayısını ayarlar.

Ortak İşleçler

Veri Akışı Adı Açıklama
CObArray::operator [] Belirtilen dizinde öğesini ayarlar veya alır.

Açıklamalar

Bu nesne dizileri C dizilerine benzer, ancak dinamik olarak küçülebilir ve gerektiğinde büyüyebilir.

Dizi dizinleri her zaman 0 konumundan başlar. Üst sınırın düzeltilmesine veya geçerli sınırın arkasına öğe eklediğinizde dizinin genişletilmesine izin verilip verilmeyeceğine karar vekleyebilirsiniz. Bazı öğeler NULLolsa bile bellek üst sınıra bitişik olarak ayrılır.

Win32 altında, nesnenin CObArray boyutu yalnızca kullanılabilir bellekle sınırlıdır.

C dizisinde olduğu gibi, dizine alınan bir CObArray öğenin erişim süresi sabittir ve dizi boyutundan bağımsızdır.

CObArray öğelerinin seri hale getirilmesini IMPLEMENT_SERIAL ve dökümünün atılması için makroyu birleştirir. bir CObject dizi işaretçisi, aşırı yüklenmiş ekleme işleciyle veya üye işleviyle Serialize bir arşivde depolanıyorsa, her CObject öğe sırasıyla dizi diziniyle birlikte serileştirilir.

Bir dizideki tek tek CObject öğelerin dökümünü almanız gerekiyorsa, nesnenin CDumpContext derinliğini 1 veya daha büyük olarak ayarlamanız gerekir.

Bir CObArray nesne silindiğinde veya öğeleri kaldırıldığında, başvuruda bulundukları nesneler değil, yalnızca CObject işaretçiler kaldırılır.

Not

Diziyi kullanmadan önce, boyutunu oluşturmak ve bunun için bellek ayırmak için kullanın SetSize . kullanmazsanız SetSize, dizinize öğe eklemek sık sık yeniden ayrılmalarına ve kopyalanmalarına neden olur. Sık yeniden konumlandırma ve kopyalama verimsizdir ve belleği parçalayabilir.

Dizi sınıfı türetme, liste türetmeye benzer. Özel amaçlı liste sınıfının türetilmesiyle ilgili ayrıntılar için Koleksiyonlar makalesine bakın.

Not

Diziyi seri hale getirmek istiyorsanız türetilmiş sınıfınızın uygulamasında IMPLEMENT_SERIAL makroyu kullanmanız gerekir.

Devralma Hiyerarşisi

CObject

CObArray

Gereksinimler

Üstbilgi: afxcoll.h

CObArray::Add

Dizinin sonuna yeni bir öğe ekleyerek diziyi 1 büyütür.

INT_PTR Add(CObject* newElement);

Parametreler

newElement
Bu CObject diziye eklenecek işaretçi.

Dönüş Değeri

Eklenen öğenin dizini.

Açıklamalar

1'den büyük bir nGrowBy değerle kullanıldıysaSetSize, ek bellek ayrılabilir. Ancak, üst sınır yalnızca 1 artar.

Aşağıdaki tabloda, benzeri CObArray::Adddiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray INT_PTR Add(BYTE newElement);

throw(CMemoryException*);
CDWordArray INT_PTR Add(DWORD newElement);

throw(CMemoryException*);
CPtrArray INT_PTR Add(void* newElement);

throw(CMemoryException*);
CStringArray INT_PTR Add(LPCTSTR newElement); throw(CMemoryException*);

INT_PTR Add(const CString& newElement);
CUIntArray INT_PTR Add(UINT newElement);

throw(CMemoryException*);
CWordArray INT_PTR Add(WORD newElement);

throw(CMemoryException*);

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray arr;

arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1
#ifdef _DEBUG
   afxDump.SetDepth(1);
   afxDump << _T("Add example: ") << &arr << _T("\n");
#endif      

Bu programın sonuçları aşağıdaki gibidir:

Add example: A CObArray with 2 elements
[0] = a CAge at $442A 21
[1] = a CAge at $4468 40

CObArray::Append

Verilen dizinin sonuna başka bir dizinin içeriğini eklemek için bu üye işlevini çağırın.

INT_PTR Append(const CObArray& src);

Parametreler

src
Diziye eklenecek öğelerin kaynağı.

Dönüş Değeri

Eklenen ilk öğenin dizini.

Açıklamalar

Diziler aynı türde olmalıdır.

Gerekirse, Append diziye eklenen öğeleri barındırmak için ek bellek ayırabilir.

Aşağıdaki tabloda, benzeri CObArray::Appenddiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray INT_PTR Append(const CByteArray& src);
CDWordArray INT_PTR Append(const CDWordArray& src);
CPtrArray INT_PTR Append(const CPtrArray& src);
CStringArray INT_PTR Append(const CStringArray& src);
CUIntArray INT_PTR Append(const CUIntArray& src);
CWordArray INT_PTR Append(const CWordArray& src);

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray myArray1, myArray2;

// Add elements to the second array.
myArray2.Add(new CAge(21));
myArray2.Add(new CAge(42));

// Add elements to the first array and also append the second array.
myArray1.Add(new CAge(3));
myArray1.Append(myArray2);

#ifdef _DEBUG
   afxDump.SetDepth(1);
   afxDump << _T("myArray1: ") << &myArray1 << _T("\n");
   afxDump << _T("myArray2: ") << &myArray2 << _T("\n");
#endif      

CObArray::Copy

Verilen dizinin öğelerinin üzerine aynı türde başka bir dizinin öğeleriyle yazmak için bu üye işlevini çağırın.

void Copy(const CObArray& src);

Parametreler

src
Diziye kopyalanacak öğelerin kaynağı.

Açıklamalar

Copy bellek boşaltmaz. Gerekirse, Copy diziye kopyalanan öğeleri barındırmak için ek bellek ayırabilir.

Aşağıdaki tabloda, benzeri CObArray::Copydiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray void Copy(const CByteArray& src);
CDWordArray void Copy(const CDWordArray& src);
CPtrArray void Copy(const CPtrArray& src);
CStringArray void Copy(const CStringArray& src);
CUIntArray void Copy(const CUIntArray& src);
CWordArray void Copy(const CWordArray& src);

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray myArray1, myArray2;

// Add elements to the second array.
myArray2.Add(new CAge(21));
myArray2.Add(new CAge(42));

// Copy the elements from the second array to the first.
myArray1.Copy(myArray2);

#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << "myArray1: " << &myArray1 << "\n";
afxDump << "myArray2: " << &myArray2 << "\n";
#endif      

CObArray::CObArray

Boş CObject bir işaretçi dizisi oluşturur.

CObArray();

Açıklamalar

Dizi her seferinde bir öğe büyütür.

Aşağıdaki tabloda, benzeri CObArray::CObArraydiğer oluşturucular gösterilmektedir.

Sınıf Oluşturucu
CByteArray CByteArray();
CDWordArray CDWordArray();
CPtrArray CPtrArray();
CStringArray CStringArray();
CUIntArray CUIntArray();
CWordArray CWordArray();

Örnek

CObArray arr; //Array with default blocksize
CObArray* pArray = new CObArray; //Array on the heap with default blocksize      

CObArray::ElementAt

Dizi içindeki öğe işaretçisine geçici bir başvuru döndürür.

CObject*& ElementAt(INT_PTR nIndex);

Parametreler

nIndex
0'dan büyük veya buna eşit ve tarafından GetUpperBounddöndürülen değerden küçük veya buna eşit bir tamsayı dizini.

Dönüş Değeri

İşaretçiye başvuru CObject .

Açıklamalar

Diziler için sol taraftaki atama işlecini uygulamak için kullanılır. Bu, yalnızca özel dizi işleçlerini uygulamak için kullanılması gereken gelişmiş bir işlevdir.

Aşağıdaki tabloda, benzeri CObArray::ElementAtdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray BYTE& ElementAt(INT_PTR nIndex);
CDWordArray DWORD& ElementAt(INT_PTR nIndex);
CPtrArray void*& ElementAt(INT_PTR nIndex);
CStringArray CString& ElementAt(INT_PTR nIndex);
CUIntArray UINT& ElementAt(INT_PTR nIndex);
CWordArray WORD& ElementAt(INT_PTR nIndex);

Örnek

örneğine CObArray::GetSizebakın.

CObArray::FreeExtra

Dizi büyütülürken ayrılan tüm ek belleği serbest bırakır.

void FreeExtra();

Açıklamalar

Bu işlevin dizinin boyutu veya üst sınırı üzerinde hiçbir etkisi yoktur.

Aşağıdaki tabloda, benzeri CObArray::FreeExtradiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray void FreeExtra();
CDWordArray void FreeExtra();
CPtrArray void FreeExtra();
CStringArray void FreeExtra();
CUIntArray void FreeExtra();
CWordArray void FreeExtra();

Örnek

örneğine CObArray::GetDatabakın.

CObArray::GetAt

Belirtilen dizindeki dizi öğesini döndürür.

CObject* GetAt(INT_PTR nIndex) const;

Parametreler

nIndex
0'dan büyük veya buna eşit ve tarafından GetUpperBounddöndürülen değerden küçük veya buna eşit bir tamsayı dizini.

Dönüş Değeri

Şu CObject anda bu dizinde olan işaretçi öğesi.

Açıklamalar

Not

Negatif bir değerin veya tarafından GetUpperBound döndürülen değerden büyük bir değerin geçirilmesi başarısız onaylama işlemine neden olur.

Aşağıdaki tabloda, benzeri CObArray::GetAtdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray BYTE GetAt(INT_PTR nIndex) const;
CDWordArray DWORD GetAt(INT_PTR nIndex) const;
CPtrArray void* GetAt(INT_PTR nIndex) const;
CStringArray const CString& GetAt(INT_PTR nIndex) const;
CUIntArray UINT GetAt(INT_PTR nIndex) const;
CWordArray WORD GetAt(INT_PTR nIndex) const;

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray arr;

arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1
ASSERT(*(CAge*) arr.GetAt(0) == CAge(21));      

CObArray::GetCount

Dizi öğelerinin sayısını döndürür.

INT_PTR GetCount() const;

Dönüş Değeri

Dizideki öğe sayısı.

Açıklamalar

Dizideki öğe sayısını almak için bu yöntemi çağırın. Dizinler sıfır tabanlı olduğundan, boyut en büyük dizinden 1 büyüktür.

Aşağıdaki tabloda, benzeri CObArray::GetCountdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray INT_PTR GetCount() const;
CDWordArray INT_PTR GetCount() const;
CPtrArray INT_PTR GetCount() const;
CStringArray INT_PTR GetCount() const;
CUIntArray INT_PTR GetCount() const;
CWordArray INT_PTR GetCount() const;

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray myArray;

// Add elements to the array.
for (int i = 0; i < 10; i++)
   myArray.Add(new CAge(i));

// Add 100 to all the elements of the array.
for (int i = 0; i < myArray.GetCount(); i++)
{
   CAge*& pAge = (CAge*&) myArray.ElementAt(i);
   delete pAge;
   pAge = new CAge(100 + i);
}

CObArray::GetData

Dizideki öğelere doğrudan erişim elde etmek için bu üye işlevini kullanın.

const CObject** GetData() const;

CObject** GetData();

Dönüş Değeri

İşaretçi dizisinin işaretçisi CObject .

Açıklamalar

Kullanılabilir öğe yoksa bir GetData NULL değer döndürür.

Dizinin öğelerine doğrudan erişim daha hızlı çalışmanıza yardımcı olsa da, çağırırken GetDatadikkatli olun; yaptığınız hatalar dizinizin öğelerini doğrudan etkiler.

Aşağıdaki tabloda, benzeri CObArray::GetDatadiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray const BYTE* GetData() const; BYTE* GetData();
CDWordArray const DWORD* GetData() const; DWORD* GetData();
CPtrArray const void** GetData() const; void** GetData();
CStringArray const CString* GetData() const; CString* GetData();
CUIntArray const UINT* GetData() const; UINT* GetData();
CWordArray const WORD* GetData() const; WORD* GetData();

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray myArray;

// Allocate memory for at least 32 elements.
myArray.SetSize(32, 128);

// Add elements to the array.
CAge** ppAge = (CAge * *)myArray.GetData();
for (int i = 0; i < 32; i++, ppAge++)
   * ppAge = new CAge(i);

// Only keep first 5 elements and free extra (unused) bytes.
for (int i = 5; i < myArray.GetCount(); i++)
{
   delete myArray[i]; // free objects before resetting array size.         
}
myArray.SetSize(5, 128);
myArray.FreeExtra(); // only frees pointers.

#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("myArray: ") << &myArray << _T("\n");
#endif      

CObArray::GetSize

Dizinin boyutunu döndürür.

INT_PTR GetSize() const;

Açıklamalar

Dizinler sıfır tabanlı olduğundan, boyut en büyük dizinden 1 büyüktür.

Aşağıdaki tabloda, benzeri CObArray::GetSizediğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray INT_PTR GetSize() const;
CDWordArray INT_PTR GetSize() const;
CPtrArray INT_PTR GetSize() const;
CStringArray INT_PTR GetSize() const;
CUIntArray INT_PTR GetSize() const;
CWordArray INT_PTR GetSize() const;

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray myArray;

// Add elements to the array.
for (int i = 0; i < 10; i++)
   myArray.Add(new CAge(i));

// Add 100 to all the elements of the array.
for (int i = 0; i < myArray.GetSize(); i++)
{
   CAge*& pAge = (CAge * &)myArray.ElementAt(i);
   delete pAge;
   pAge = new CAge(100 + i);
}

#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("myArray: ") << &myArray << _T("\n");
#endif      

CObArray::GetUpperBound

Bu dizinin geçerli üst sınırlarını döndürür.

INT_PTR GetUpperBound() const;

Dönüş Değeri

Üst sınırın dizini (sıfır tabanlı).

Açıklamalar

Dizi dizinleri sıfır tabanlı olduğundan, bu işlev değerinden GetSize1 küçük bir değer döndürür.

koşul GetUpperBound() = -1 , dizinin öğe içermediğini gösterir.

Aşağıdaki tabloda, benzeri CObArray::GetUpperBounddiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray INT_PTR GetUpperBound() const;
CDWordArray INT_PTR GetUpperBound() const;
CPtrArray INT_PTR GetUpperBound() const;
CStringArray INT_PTR GetUpperBound() const;
CUIntArray INT_PTR GetUpperBound() const;
CWordArray INT_PTR GetUpperBound() const;

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray arr;

arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1
ASSERT(arr.GetUpperBound() == 1); // Largest index      

CObArray::InsertAt

Belirtilen dizine bir öğe (veya başka bir dizideki tüm öğeler) ekler.

void InsertAt(
    INT_PTR nIndex,
    CObject* newElement,
    INT_PTR nCount = 1);

void InsertAt(
    INT_PTR nStartIndex,
    CObArray* pNewArray);

Parametreler

nIndex
tarafından GetUpperBounddöndürülen değerden büyük olabilecek bir tamsayı dizini.

newElement
Bu CObject diziye yerleştirilecek işaretçi. Bir newElement değere NULL izin verilir.

nCount
Bu öğenin kaç kez eklenmesi gerektiği (varsayılan olarak 1' olur).

nStartIndex
tarafından GetUpperBounddöndürülen değerden büyük olabilecek bir tamsayı dizini.

pNewArray
Bu diziye eklenecek öğeleri içeren başka bir dizi.

Açıklamalar

İlk sürümü InsertAt , bir dizideki belirtilen dizine bir öğe (veya bir öğenin birden çok kopyası) ekler. İşlemde, bu dizindeki mevcut öğeyi yukarı kaydırarak (dizini artırarak) ve üzerindeki tüm öğeleri yukarı kaydırıyor.

İkinci sürüm, konumdan başlayarak nStartIndex başka bir CObArray koleksiyondaki tüm öğeleri ekler.

buna SetAt karşılık işlevi, belirtilen bir dizi öğesinin yerini alır ve hiçbir öğeyi kaydırmaz.

Aşağıdaki tabloda, benzeri CObArray::InsertAtdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray void InsertAt(INT_PTR nIndex, BYTE newElement, int nCount = 1);

throw(CMemoryException*);

void InsertAt(INT_PTR nStartIndex, CByteArray* pNewArray);

throw(CMemoryException*);
CDWordArray void InsertAt(INT_PTR nIndex, DWORD newElement, int nCount = 1);

throw(CMemoryException*);

void InsertAt(INT_PTR nStartIndex, CDWordArray* pNewArray);

throw(CMemoryException*);
CPtrArray void InsertAt(INT_PTR nIndex, void* newElement, int nCount = 1);

throw(CMemoryException*);

void InsertAt(INT_PTR nStartIndex, CPtrArray* pNewArray);

throw(CMemoryException*);
CStringArray void InsertAt(INT_PTR nIndex, LPCTSTR newElement, int nCount = 1);

throw(CMemoryException*);

void InsertAt(INT_PTR nStartIndex, CStringArray* pNewArray);

throw(CMemoryException*);
CUIntArray void InsertAt(INT_PTR nIndex, UINT newElement, int nCount = 1);

throw(CMemoryException*);

void InsertAt(INT_PTR nStartIndex, CUIntArray* pNewArray);

throw(CMemoryException*);
CWordArray void InsertAt(INT_PTR nIndex, WORD newElement, int nCount = 1);

throw(CMemoryException*);

void InsertAt(INT_PTR nStartIndex, CWordArray* pNewArray);

throw(CMemoryException*);

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray arr;

arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1 (will become 2).
arr.InsertAt(1, new CAge(30));  // New element 1
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("InsertAt example: ") << &arr << _T("\n");
#endif      

Bu programın sonuçları aşağıdaki gibidir:

InsertAt example: A CObArray with 3 elements
[0] = a CAge at $45C8 21
[1] = a CAge at $4646 30
[2] = a CAge at $4606 40

CObArray::IsEmpty

Dizinin boş olup olmadığını belirler.

BOOL IsEmpty() const;

Dönüş Değeri

Dizi boşsa sıfır olmayan; aksi takdirde 0.

CObArray::operator [ ]

Bu alt simge işleçleri ve GetAt işlevleri için SetAt kullanışlı bir alternatiftir.

CObject*& operator[](int_ptr nindex);
CObject* operator[](int_ptr nindex) const;

Açıklamalar

olmayan diziler constiçin çağrılan ilk işleç, atama deyiminin sağ tarafında (r-value) veya solunda (l-value) kullanılabilir. Diziler için const çağrılan ikinci, yalnızca sağda kullanılabilir.

Kitaplığın Hata Ayıklama sürümü, alt simgenin (atama deyiminin solunda veya sağ tarafında) sınırların dışında olup olmadığını onaylar.

Aşağıdaki tabloda, benzeri CObArray::operator []diğer işleçler gösterilmektedir.

Sınıf Operatör
CByteArray BYTE& operator [](INT_PTR nindex);

BYTE operator [](INT_PTR nindex) const;
CDWordArray DWORD& operator [](INT_PTR nindex);

DWORD operator [](INT_PTR nindex) const;
CPtrArray void*& operator [](INT_PTR nindex);

void* operator [](INT_PTR nindex) const;
CStringArray CString& operator [](INT_PTR nindex);

CString operator [](INT_PTR nindex) const;
CUIntArray UINT& operator [](INT_PTR nindex);

UINT operator [](INT_PTR nindex) const;
CWordArray WORD& operator [](INT_PTR nindex);

WORD operator [](INT_PTR nindex) const;

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray arr;
CAge* pa;

arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1
pa = (CAge*)arr[0]; // Get element 0
ASSERT(*pa == CAge(21)); // Get element 0
arr[0] = new CAge(30); // Replace element 0
delete pa;
ASSERT(*(CAge*)arr[0] == CAge(30)); // Get new element 0      

CObArray::RemoveAll

Bu dizideki tüm işaretçileri kaldırır, ancak aslında nesneleri silmez CObject .

void RemoveAll();

Açıklamalar

Dizi zaten boşsa işlev çalışmaya devam eder.

işlevi, RemoveAll işaretçi depolama için kullanılan tüm belleği serbest bırakır.

Aşağıdaki tabloda, benzeri CObArray::RemoveAlldiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray void RemoveAll();
CDWordArray void RemoveAll();
CPtrArray void RemoveAll();
CStringArray void RemoveAll();
CUIntArray void RemoveAll();
CWordArray void RemoveAll();

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray arr;
CAge* pa1;
CAge* pa2;

arr.Add(pa1 = new CAge(21)); // Element 0
arr.Add(pa2 = new CAge(40)); // Element 1
ASSERT(arr.GetSize() == 2);
arr.RemoveAll(); // Pointers removed but objects not deleted.
ASSERT(arr.GetSize() == 0);
delete pa1;
delete pa2;  // Cleans up memory.      

CObArray::RemoveAt

Dizideki belirtilen dizinden başlayan bir veya daha fazla öğeyi kaldırır.

void RemoveAt(
    INT_PTR nIndex,
    INT_PTR nCount = 1);

Parametreler

nIndex
0'dan büyük veya buna eşit ve tarafından GetUpperBounddöndürülen değerden küçük veya buna eşit bir tamsayı dizini.

nCount
Kaldırılacak öğe sayısı.

Açıklamalar

İşlemde, kaldırılan öğelerin üzerindeki tüm öğeleri aşağı kaydırır. Dizinin üst sınırlarını azaltmasına rağmen belleği boşaltmaz.

Kaldırma noktasının üzerindeki dizide bulunandan daha fazla öğe kaldırmayı denerseniz, kitaplığın Hata Ayıklama sürümü onaylar.

RemoveAt işlevi işaretçiyi CObject diziden kaldırır, ancak nesnenin kendisini silmez.

Aşağıdaki tabloda, benzeri CObArray::RemoveAtdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1);
CDWordArray void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1);
CPtrArray void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1);
CStringArray void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1);
CUIntArray void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1);
CWordArray void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1);

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray arr;
CObject* pa;

arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1
if ((pa = arr.GetAt(0)) != NULL)
{
   arr.RemoveAt(0);  // Element 1 moves to 0.
   delete pa; // Delete the original element at 0.
}
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("RemoveAt example: ") << &arr << _T("\n");
#endif      

Bu programın sonuçları aşağıdaki gibidir:

RemoveAt example: A CObArray with 1 elements
[0] = a CAge at $4606 40

CObArray::SetAt

Belirtilen dizinde dizi öğesini ayarlar.

void SetAt(
    INT_PTR nIndex,
    CObject* newElement);

Parametreler

nIndex
0'dan büyük veya buna eşit ve tarafından GetUpperBounddöndürülen değerden küçük veya buna eşit bir tamsayı dizini.

newElement
Bu diziye eklenecek nesne işaretçisi. Bir NULL değere izin verilir.

Açıklamalar

SetAt dizinin büyümesine neden olmaz. Dizinin otomatik olarak büyümesini istiyorsanız kullanın SetAtGrow .

Dizin değerinizin dizideki geçerli bir konumu temsildiğinden emin olun. Sınırların dışındaysa kitaplığın Hata Ayıklama sürümü onaylar.

Aşağıdaki tabloda, benzeri CObArray::SetAtdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray void SetAt(INT_PTR nIndex, BYTE newElement);
CDWordArray void SetAt(INT_PTR nIndex, DWORD newElement);
CPtrArray void SetAt(INT_PTR nIndex, void* newElement);
CStringArray void SetAt(INT_PTR nIndex, LPCTSTR newElement);
CUIntArray void SetAt(INT_PTR nIndex, UINT newElement);
CWordArray void SetAt(INT_PTR nIndex, WORD newElement);

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray arr;
CObject* pa;

arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1
if ((pa = arr.GetAt(0)) != NULL)
{
   arr.SetAt(0, new CAge(30));  // Replace element 0.
   delete pa; // Delete the original element at 0.
}
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("SetAt example: ") << &arr << _T("\n");
#endif      

Bu programın sonuçları aşağıdaki gibidir:

SetAt example: A CObArray with 2 elements
[0] = a CAge at $47E0 30
[1] = a CAge at $47A0 40

CObArray::SetAtGrow

Belirtilen dizinde dizi öğesini ayarlar.

void SetAtGrow(
    INT_PTR nIndex,
    CObject* newElement);

Parametreler

nIndex
0'dan büyük veya 0'a eşit bir tamsayı dizini.

newElement
Bu diziye eklenecek nesne işaretçisi. Bir NULL değere izin verilir.

Açıklamalar

Gerekirse dizi otomatik olarak büyür (diğer bir ifadeyle üst sınır yeni öğeye uyacak şekilde ayarlanır).

Aşağıdaki tabloda, benzeri CObArray::SetAtGrowdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray void SetAtGrow(INT_PTR nIndex, BYTE newElement);

throw(CMemoryException*);
CDWordArray void SetAtGrow(INT_PTR nIndex, DWORD newElement);

throw(CMemoryException*);
CPtrArray void SetAtGrow(INT_PTR nIndex, void* newElement);

throw( CMemoryException*);
CStringArray void SetAtGrow(INT_PTR nIndex, LPCTSTR newElement);

throw(CMemoryException*);
CUIntArray void SetAtGrow(INT_PTR nIndex, UINT newElement);

throw(CMemoryException*);
CWordArray void SetAtGrow(INT_PTR nIndex, WORD newElement);

throw(CMemoryException*);

Örnek

Tüm koleksiyon örneklerinde kullanılan sınıfın CAge listesi için bkzCObList::CObList.

CObArray arr;

arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1
arr.SetAtGrow(3, new CAge(65)); // Element 2 deliberately
                                      // skipped.
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("SetAtGrow example: ") << &arr << _T("\n");
#endif      

Bu programın sonuçları aşağıdaki gibidir:

SetAtGrow example: A CObArray with 4 elements
[0] = a CAge at $47C0 21
[1] = a CAge at $4800 40
[2] = NULL
[3] = a CAge at $4840 65

CObArray::SetSize

Boş veya var olan bir dizinin boyutunu oluşturur; gerekirse bellek ayırır.

void SetSize(
    INT_PTR nNewSize,
    INT_PTR nGrowBy = -1);

Parametreler

nNewSize
Yeni dizi boyutu (öğe sayısı). 0'dan büyük veya buna eşit olmalıdır.

nGrowBy
Boyut artışı gerekiyorsa ayrılacak en az öğe yuvası sayısı.

Açıklamalar

Yeni boyut eski boyuttan küçükse dizi kesilir ve kullanılmayan tüm bellek serbest bırakılır. Verimlilik için, kullanmadan önce dizinin boyutunu ayarlama çağrısında SetSize bulunur. Bu, bir öğe her eklendiğinde diziyi yeniden ayırma ve kopyalama gereksinimini önler.

parametresi, nGrowBy dizi büyürken iç bellek ayırmayı etkiler. Kullanımı, ve GetUpperBoundtarafından GetSize bildirilen dizi boyutunu hiçbir zaman etkilemez.

Dizinin boyutu büyüdüyse, yeni ayrılan CObject * tüm işaretçiler olarak NULLayarlanır.

Aşağıdaki tabloda, benzeri CObArray::SetSizediğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CByteArray void SetSize(INT_PTR nNewSize, int nGrowBy = -1);

throw(CMemoryException*);
CDWordArray void SetSize(INT_PTR nNewSize, int nGrowBy = -1);

throw(CMemoryException*);
CPtrArray void SetSize(INT_PTR nNewSize, int nGrowBy = -1);

throw(CMemoryException*);
CStringArray void SetSize(INT_PTR nNewSize, int nGrowBy = -1);

throw(CMemoryException*);
CUIntArray void SetSize(INT_PTR nNewSize, int nGrowBy = -1);

throw(CMemoryException*);
CWordArray void SetSize(INT_PTR nNewSize, int nGrowBy = -1);

throw(CMemoryException*);

Örnek

örneğine CObArray::GetDatabakın.

Ayrıca bkz.

CObject Sınıf
Hiyerarşi Grafiği
CStringArray Sınıf
CPtrArray Sınıf
CByteArray Sınıf
CWordArray Sınıf
CDWordArray Sınıf