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 NULL
olsa 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
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::Add
diğ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::Append
diğ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::Copy
diğ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::CObArray
diğ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 GetUpperBound
dö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::ElementAt
diğ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::GetSize
bakı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::FreeExtra
diğ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::GetData
bakı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 GetUpperBound
dö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::GetAt
diğ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::GetCount
diğ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 GetData
dikkatli olun; yaptığınız hatalar dizinizin öğelerini doğrudan etkiler.
Aşağıdaki tabloda, benzeri CObArray::GetData
diğ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::GetSize
diğ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 GetSize
1 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::GetUpperBound
diğ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 GetUpperBound
dö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 GetUpperBound
dö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::InsertAt
diğ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 const
iç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::RemoveAll
diğ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 GetUpperBound
dö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::RemoveAt
diğ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 GetUpperBound
dö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::SetAt
diğ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::SetAtGrow
diğ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 GetUpperBound
tarafı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 NULL
ayarlanır.
Aşağıdaki tabloda, benzeri CObArray::SetSize
diğ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::GetData
bakı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