CAtlList Sınıfı
Bu sınıf, liste nesnesi oluşturmak ve yönetmek için yöntemler sağlar.
Sözdizimi
template<typename E, class ETraits = CElementTraits<E>>
class CAtlList
Parametreler
E
Öğe türü.
ETraits
Öğeleri kopyalamak veya taşımak için kullanılan kod. Daha fazla ayrıntı için bkz . CElementTraits Sınıfı .
Üyeler
Genel Tür Tanımları
Veri Akışı Adı | Açıklama |
---|---|
CAtlList::INARGTYPE |
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CAtlList::CAtlList | Oluşturucu. |
CAtlList::~CAtlList | Yok edici. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CAtlList::AddHead | Listenin başına bir öğe eklemek için bu yöntemi çağırın. |
CAtlList::AddHeadList | Listenin başına var olan bir listeyi eklemek için bu yöntemi çağırın. |
CAtlList::AddTail | Bu listenin kuyruğuna bir öğe eklemek için bu yöntemi çağırın. |
CAtlList::AddTailList | Bu listenin kuyruğuna var olan bir listeyi eklemek için bu yöntemi çağırın. |
CAtlList::AssertValid | Listenin geçerli olduğunu onaylamak için bu yöntemi çağırın. |
CAtlList::Find | Belirtilen öğe için listede arama yapmak için bu yöntemi çağırın. |
CAtlList::FindIndex | Dizin değeri verilen bir öğenin konumunu almak için bu yöntemi çağırın. |
CAtlList::GetAt | Öğesini listede belirtilen bir konumda döndürmek için bu yöntemi çağırın. |
CAtlList::GetCount | Listedeki nesne sayısını döndürmek için bu yöntemi çağırın. |
CAtlList::GetHead | Listenin başındaki öğesini döndürmek için bu yöntemi çağırın. |
CAtlList::GetHeadPosition | Listenin başı konumunu almak için bu yöntemi çağırın. |
CAtlList::GetNext | Listeden sonraki öğeyi döndürmek için bu yöntemi çağırın. |
CAtlList::GetPrev | Listeden önceki öğeyi döndürmek için bu yöntemi çağırın. |
CAtlList::GetTail | Listenin kuyruğundaki öğesini döndürmek için bu yöntemi çağırın. |
CAtlList::GetTailPosition | Listenin kuyruğunun konumunu almak için bu yöntemi çağırın. |
CAtlList::InsertAfter | Belirtilen konumdan sonra listeye yeni bir öğe eklemek için bu yöntemi çağırın. |
CAtlList::InsertBefore | Belirtilen konumdan önce listeye yeni bir öğe eklemek için bu yöntemi çağırın. |
CAtlList::IsEmpty | Listenin boş olup olmadığını belirlemek için bu yöntemi çağırın. |
CAtlList::MoveToHead | Belirtilen öğeyi listenin başına taşımak için bu yöntemi çağırın. |
CAtlList::MoveToTail | Belirtilen öğeyi listenin kuyruğuna taşımak için bu yöntemi çağırın. |
CAtlList::RemoveAll | Listedeki tüm öğeleri kaldırmak için bu yöntemi çağırın. |
CAtlList::RemoveAt | Listeden tek bir öğeyi kaldırmak için bu yöntemi çağırın. |
CAtlList::RemoveHead | Listenin başındaki öğesini kaldırmak için bu yöntemi çağırın. |
CAtlList::RemoveHeadNoReturn | Bir değer döndürmeden listenin başındaki öğesini kaldırmak için bu yöntemi çağırın. |
CAtlList::RemoveTail | Listenin kuyruğundaki öğesini kaldırmak için bu yöntemi çağırın. |
CAtlList::RemoveTailNoReturn | Bir değer döndürmeden listenin sonundaki öğesini kaldırmak için bu yöntemi çağırın. |
CAtlList::SetAt | Öğesinin değerini listede belirli bir konumda ayarlamak için bu yöntemi çağırın. |
CAtlList::SwapElements | Listedeki öğeleri değiştirmek için bu yöntemi çağırın. |
Açıklamalar
sınıfı, CAtlList
sıralı olarak veya değere göre erişilebilen sıralı nonunique nesne listelerini destekler. CAtlList
listeler, ikiye kat bağlantılı listeler gibi davranır. Her listenin başı ve kuyruğu vardır ve listenin sonuna yeni öğeler (veya bazı durumlarda listeler) eklenebilir ya da belirli öğelerden önce veya sonra eklenebilir.
Yöntemlerin CAtlList
çoğu konum değerini kullanır. Bu değer, yöntemleri tarafından öğelerin depolandığı gerçek bellek konumuna başvurmak için kullanılır ve doğrudan hesaplanmaması veya tahmin edilmemesi gerekir. Listedeki n. öğeye erişmek gerekiyorsa, CAtlList::FindIndex yöntemi belirli bir dizin için karşılık gelen konum değerini döndürür. CAtlList::GetNext ve CAtlList::GetPrev yöntemleri listedeki nesneler arasında yineleme yapmak için kullanılabilir.
ATL ile kullanılabilen koleksiyon sınıfları hakkında daha fazla bilgi için bkz . ATL Koleksiyon Sınıfları.
Gereksinimler
Üst bilgi: atlcoll.h
CAtlList::AddHead
Listenin başına bir öğe eklemek için bu yöntemi çağırın.
POSITION AddHead();
POSITION AddHead(INARGTYPE element);
Parametreler
öğe
Yeni öğe.
Dönüş Değeri
Yeni eklenen öğenin konumunu döndürür.
Açıklamalar
İlk sürüm kullanılırsa, kopya oluşturucu yerine varsayılan oluşturucu kullanılarak boş bir öğe oluşturulur.
Örnek
// Declare a list of integers
CAtlList<int> myList;
// Add some elements, each to the head of the list.
// As each new element is added, the previous head is
// pushed down the list.
myList.AddHead(42);
myList.AddHead(49);
// Confirm the value currently at the head of the list
ATLASSERT(myList.GetHead() == 49);
// Confirm the value currently at the tail of the list
ATLASSERT(myList.GetTail() == 42);
CAtlList::AddHeadList
Listenin başına var olan bir listeyi eklemek için bu yöntemi çağırın.
void AddHeadList(const CAtlList<E, ETraits>* plNew);
Parametreler
plNew
Eklenecek liste.
Açıklamalar
plNew tarafından işaret edilen liste, var olan listenin başına eklenir. Hata ayıklama derlemelerinde, plNew null değerine eşitse bir onaylama hatası oluşur.
Örnek
// Define two lists of integers
CAtlList<int> myList1;
CAtlList<int> myList2;
// Fill up the first list
myList1.AddTail(1);
myList1.AddTail(2);
myList1.AddTail(3);
// Add an element to the second list
myList2.AddTail(4);
// Insert the first list into the second
myList2.AddHeadList(&myList1);
// The second list now contains:
// 1, 2, 3, 4
CAtlList::AddTail
Bu listenin kuyruğuna bir öğe eklemek için bu yöntemi çağırın.
POSITION AddTail();
POSITION AddTail(INARGTYPE element);
Parametreler
öğe
Eklenecek öğe.
Dönüş Değeri
Yeni eklenen öğenin POSITION değerini döndürür.
Açıklamalar
İlk sürüm kullanılırsa, kopya oluşturucu yerine varsayılan oluşturucu kullanılarak boş bir öğe oluşturulur. öğesi listenin sonuna eklenir ve artık kuyruk haline gelir. Bu yöntem boş bir listeyle kullanılabilir.
Örnek
// Define the list
CAtlList<int> myList;
// Add elements to the tail
myList.AddTail(1);
myList.AddTail(2);
myList.AddTail(3);
// Confirm the current head of the list
ATLASSERT(myList.GetHead() == 1);
// Confirm the current tail of the list
ATLASSERT(myList.GetTail() == 3);
CAtlList::AddTailList
Bu listenin kuyruğuna var olan bir listeyi eklemek için bu yöntemi çağırın.
void AddTailList(const CAtlList<E, ETraits>* plNew);
Parametreler
plNew
Eklenecek liste.
Açıklamalar
plNew tarafından işaret edilen liste, liste nesnesindeki son öğeden (varsa) sonra eklenir. Bu nedenle plNew listesindeki son öğe kuyruk olur. Hata ayıklama derlemelerinde, plNew null değerine eşitse bir onaylama hatası oluşur.
Örnek
// Define two integer lists
CAtlList<int> myList1;
CAtlList<int> myList2;
// Fill up the first list
myList1.AddTail(1);
myList1.AddTail(2);
myList1.AddTail(3);
// Add an element to the second list
myList2.AddTail(4);
// Insert the first list into the second
myList2.AddTailList(&myList1);
// The second list now contains:
// 4, 1, 2, 3
CAtlList::AssertValid
Listenin geçerli olduğunu onaylamak için bu yöntemi çağırın.
void AssertValid() const;
Açıklamalar
Hata ayıklama derlemelerinde, liste nesnesi geçerli değilse onay hatası oluşur. Geçerli olması için, boş bir listede hem baş hem de kuyruk NULL'a işaret etmelidir ve boş olmayan bir listede hem baş hem de kuyruk geçerli adreslere işaret etmelidir.
Örnek
// Define the list
CAtlList<int> myList;
// AssertValid only exists in debug builds
#ifdef _DEBUG
myList.AssertValid();
#endif
CAtlList::CAtlList
Oluşturucu.
CAtlList(UINT nBlockSize = 10) throw();
Parametreler
nBlockSize
Blok boyutu.
Açıklamalar
Nesnenin oluşturucusunun CAtlList
. Blok boyutu, 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.
Örnek
// Define two lists
CAtlList<int> myList1;
CAtlList<double> myList2;
CAtlList::~CAtlList
Yok edici.
~CAtlList() throw();
Açıklamalar
Tüm öğeleri listeden kaldırmak için CAtlList::RemoveAll çağrısı da dahil olmak üzere ayrılan tüm kaynakları serbest kaldırır.
Hata ayıklama derlemelerinde, listede çağrısından RemoveAll
sonra hala bazı öğeler varsa onay hatası oluşur.
CAtlList::Find
Belirtilen öğe için listede arama yapmak için bu yöntemi çağırın.
POSITION Find(INARGTYPE element, POSITION posStartAfter = NULL) const throw();
Parametreler
öğe
Listede bulunabilecek öğe.
posStartAfter
Aramanın başlangıç konumu. Değer belirtilmezse, arama baş öğesiyle başlar.
Dönüş Değeri
Bulunursa öğesinin POSITION değerini döndürür, aksi takdirde NULL döndürür.
Açıklamalar
Hata ayıklama derlemelerinde, liste nesnesi geçerli değilse veya posStartAfter değeri aralık dışındaysa onay hatası oluşur.
Örnek
// Define the integer list
CAtlList<int> myList;
// Populate the list
myList.AddTail(100);
myList.AddTail(200);
myList.AddTail(300);
myList.AddTail(400);
// Find the '300' element in the list,
// starting from the list head.
POSITION myPos = myList.Find(300);
// Confirm that the element was found
ATLASSERT(myList.GetAt(myPos) == 300);
CAtlList::FindIndex
Dizin değeri verilen bir öğenin konumunu almak için bu yöntemi çağırın.
POSITION FindIndex(size_t iElement) const throw();
Parametreler
iElement
Gerekli liste öğesinin sıfır tabanlı dizini.
Dönüş Değeri
karşılık gelen POSITION değerini veya iElement aralık dışındaysa NULL değerini döndürür.
Açıklamalar
Bu yöntem belirli bir dizin değerine karşılık gelen POSITION değerini döndürür ve listedeki n. öğeye erişim sağlar.
Hata ayıklama derlemelerinde, liste nesnesi geçerli değilse onay hatası oluşur.
Örnek
// Define the integer list
CAtlList<int> myList;
// Populate the list
for (int i = 0; i < 100; i++)
{
myList.AddTail(i);
}
// Iterate through the entire list
for (size_t j = 0; j < myList.GetCount(); j++)
{
size_t i = myList.GetAt(myList.FindIndex(j));
ATLASSERT(i == j);
}
CAtlList::GetAt
Öğesini listede belirtilen bir konumda döndürmek için bu yöntemi çağırın.
E& GetAt(POSITION pos) throw();
const E& GetAt(POSITION pos) const throw();
Parametreler
Pos
Belirli bir öğeyi belirten POSITION değeri.
Dönüş Değeri
öğesine başvuru veya kopyası.
Açıklamalar
Liste ise const
, GetAt
öğesinin bir kopyasını döndürür. Bu, yöntemin yalnızca atama deyiminin sağ tarafında kullanılmasını sağlar ve listeyi değişiklikten korur.
Liste değilse const
, GetAt
öğesine bir başvuru döndürür. Bu, yönteminin atama deyiminin her iki tarafında kullanılmasını sağlar ve bu nedenle liste girdilerinin değiştirilmesini sağlar.
Hata ayıklama derlemelerinde, pos NULL'a eşitse bir onaylama hatası oluşur.
Örnek
CAtlList::FindIndex örneğine bakın.
CAtlList::GetCount
Listedeki nesne sayısını döndürmek için bu yöntemi çağırın.
size_t GetCount() const throw();
Dönüş Değeri
Listedeki öğe sayısını döndürür.
Örnek
CAtlList::Find örneğine bakın.
CAtlList::GetHead
Listenin başındaki öğesini döndürmek için bu yöntemi çağırın.
E& GetHead() throw();
const E& GetHead() const throw();
Dönüş Değeri
Listenin başındaki öğeye başvuru veya kopyasını döndürür.
Açıklamalar
Liste ise const
, GetHead
listenin başındaki öğenin bir kopyasını döndürür. Bu, yöntemin yalnızca atama deyiminin sağ tarafında kullanılmasını sağlar ve listeyi değişiklikten korur.
Liste değilse const
, GetHead
listenin başındaki öğeye bir başvuru döndürür. Bu, yönteminin atama deyiminin her iki tarafında kullanılmasını sağlar ve bu nedenle liste girdilerinin değiştirilmesini sağlar.
Hata ayıklama derlemelerinde, listenin başı NULL'a işaret ederse onay hatası oluşur.
Örnek
CAtlList::AddHead örneğine bakın.
CAtlList::GetHeadPosition
Listenin başı konumunu almak için bu yöntemi çağırın.
POSITION GetHeadPosition() const throw();
Dönüş Değeri
Listenin başındaki öğeye karşılık gelen POSITION değerini döndürür.
Açıklamalar
Liste boşsa, döndürülen değer NULL olur.
Örnek
// Define the integer list
CAtlList<int> myList;
int i;
// Populate the list
for (i = 0; i < 100; i++)
{
myList.AddTail(i);
}
// Get the starting position value
POSITION myPos = myList.GetHeadPosition();
// Iterate through the entire list
i = 0;
int j;
do {
j = myList.GetNext(myPos);
ATLASSERT(i == j);
i++;
} while (myPos != NULL);
CAtlList::GetNext
Listeden sonraki öğeyi döndürmek için bu yöntemi çağırın.
E& GetNext(POSITION& pos) throw();
const E& GetNext(POSITION& pos) const throw();
Parametreler
Pos
Önceki bir çağrısı GetNext
tarafından döndürülen bir POSITION değeri, CAtlList::GetHeadPosition veya başka bir CAtlList
yöntem.
Dönüş Değeri
Liste ise const
, GetNext
listenin sonraki öğesinin bir kopyasını döndürür. Bu, yöntemin yalnızca atama deyiminin sağ tarafında kullanılmasını sağlar ve listeyi değişiklikten korur.
Liste değilse const
, GetNext
listenin sonraki öğesine bir başvuru döndürür. Bu, yönteminin atama deyiminin her iki tarafında kullanılmasını sağlar ve bu nedenle liste girdilerinin değiştirilmesini sağlar.
Açıklamalar
POSITION sayacı, pos, listedeki bir sonraki öğeye işaret etmek için güncelleştirilir veya başka öğe yoksa NULL olur. Hata ayıklama derlemelerinde, pos NULL'a eşitse bir onaylama hatası oluşur.
Örnek
CAtlList::GetHeadPosition örneğine bakın.
CAtlList::GetPrev
Listeden önceki öğeyi döndürmek için bu yöntemi çağırın.
E& GetPrev(POSITION& pos) throw();
const E& GetPrev(POSITION& pos) const throw();
Parametreler
Pos
Önceki bir çağrısı GetPrev
tarafından döndürülen bir POSITION değeri, CAtlList::GetTailPosition veya başka bir CAtlList
yöntem.
Dönüş Değeri
Liste ise const
, GetPrev
liste öğesinin bir kopyasını döndürür. Bu, yöntemin yalnızca atama deyiminin sağ tarafında kullanılmasını sağlar ve listeyi değişiklikten korur.
Liste değilse const
, GetPrev
listenin bir öğesine başvuru döndürür. Bu, yönteminin atama deyiminin her iki tarafında kullanılmasını sağlar ve bu nedenle liste girdilerinin değiştirilmesini sağlar.
Açıklamalar
POSITION sayacı, pos, listedeki önceki öğeye işaret etmek için veya başka öğe yoksa NULL olarak güncelleştirilir. Hata ayıklama derlemelerinde, pos NULL'a eşitse bir onaylama hatası oluşur.
Örnek
CAtlList::GetTailPosition örneğine bakın.
CAtlList::GetTail
Listenin kuyruğundaki öğesini döndürmek için bu yöntemi çağırın.
E& GetTail() throw();
const E& GetTail() const throw();
Dönüş Değeri
Listenin sonundaki öğeye başvuru veya kopyasını döndürür.
Açıklamalar
Liste ise const
, GetTail
listenin başındaki öğenin bir kopyasını döndürür. Bu, yöntemin yalnızca atama deyiminin sağ tarafında kullanılmasını sağlar ve listeyi değişiklikten korur.
Liste değilse const
, GetTail
listenin başındaki öğeye bir başvuru döndürür. Bu, yönteminin atama deyiminin her iki tarafında kullanılmasını sağlar ve bu nedenle liste girdilerinin değiştirilmesini sağlar.
Hata ayıklama derlemelerinde, listenin kuyruğu NULL'a işaret ederse onay hatası oluşur.
Örnek
CAtlList::AddTail örneğine bakın.
CAtlList::GetTailPosition
Listenin kuyruğunun konumunu almak için bu yöntemi çağırın.
POSITION GetTailPosition() const throw();
Dönüş Değeri
Listenin sonundaki öğeye karşılık gelen POSITION değerini döndürür.
Açıklamalar
Liste boşsa, döndürülen değer NULL olur.
Örnek
// Define the integer list
CAtlList<int> myList;
int i;
// Populate the list
for (i = 0; i < 100; i++)
{
myList.AddHead(i);
}
// Get the starting position value
POSITION myP = myList.GetTailPosition();
// Iterate through the entire list
i = 0;
int j;
do {
j = myList.GetPrev(myP);
ATLASSERT(i == j);
i++;
} while (myP != NULL);
CAtlList::INARGTYPE
Bir öğe giriş bağımsız değişkeni olarak geçirildiğinde kullanılan tür.
typedef ETraits::INARGTYPE INARGTYPE;
CAtlList::InsertAfter
Belirtilen konumdan sonra listeye yeni bir öğe eklemek için bu yöntemi çağırın.
POSITION InsertAfter(POSITION pos, INARGTYPE element);
Parametreler
Pos
Yeni öğenin eklendiği POSITION değeri.
öğe
Eklenecek öğe.
Dönüş Değeri
Yeni öğenin POSITION değerini döndürür.
Açıklamalar
Hata ayıklama derlemelerinde, liste geçerli değilse, ekleme başarısız olursa veya öğeyi kuyruk sonrasında ekleme girişiminde bulunulması durumunda onay hatası oluşur.
Örnek
// Define the integer list
CAtlList<int> myList;
// Populate the list
POSITION myPos = myList.AddHead(1);
myPos = myList.InsertAfter(myPos, 2);
myPos = myList.InsertAfter(myPos, 3);
// Confirm the tail value is as expected
ATLASSERT(myList.GetTail() == 3);
CAtlList::InsertBefore
Belirtilen konumdan önce listeye yeni bir öğe eklemek için bu yöntemi çağırın.
POSITION InsertBefore(POSITION pos, INARGTYPE element);
Parametreler
Pos
Yeni öğe, bu POSITION değerinden önce listeye eklenir.
öğe
Eklenecek öğe.
Dönüş Değeri
Yeni öğenin POSITION değerini döndürür.
Açıklamalar
Hata ayıklama derlemelerinde, liste geçerli değilse, ekleme başarısız olursa veya öğeyi kafadan önce ekleme girişiminde bulunulması durumunda onay hatası oluşur.
Örnek
// Define the integer list
CAtlList<int> myList;
// Populate the list
POSITION myPos = myList.AddHead(1);
myPos = myList.InsertBefore(myPos, 2);
myPos = myList.InsertBefore(myPos, 3);
// Confirm the head value is as expected
ATLASSERT(myList.GetHead() == 3);
CAtlList::IsEmpty
Listenin boş olup olmadığını belirlemek için bu yöntemi çağırın.
bool IsEmpty() const throw();
Dönüş Değeri
Listede nesne yoksa true, aksi takdirde false döndürür.
Örnek
// Define the integer list
CAtlList<int> myList;
// Populate the list
myList.AddTail(1);
myList.AddTail(2);
myList.AddTail(3);
myList.AddTail(4);
// Confirm not empty
ATLASSERT(myList.IsEmpty() == false);
// Remove the tail element
myList.RemoveTailNoReturn();
// Confirm not empty
ATLASSERT(myList.IsEmpty() == false);
// Remove the head element
myList.RemoveHeadNoReturn();
// Confirm not empty
ATLASSERT(myList.IsEmpty() == false);
// Remove all remaining elements
myList.RemoveAll();
// Confirm empty
ATLASSERT(myList.IsEmpty() == true);
CAtlList::MoveToHead
Belirtilen öğeyi listenin başına taşımak için bu yöntemi çağırın.
void MoveToHead(POSITION pos) throw();
Parametreler
Pos
Taşınacak öğenin POSITION değeri.
Açıklamalar
Belirtilen öğe geçerli konumundan listenin başına taşınır. Hata ayıklama derlemelerinde, pos NULL'a eşitse bir onaylama hatası oluşur.
Örnek
// Define the integer list
CAtlList<int> myList;
// Populate the list
myList.AddTail(1);
myList.AddTail(2);
myList.AddTail(3);
myList.AddTail(4);
// Move the tail element to the head
myList.MoveToHead(myList.GetTailPosition());
// Confirm the head is as expected
ATLASSERT(myList.GetHead() == 4);
// Move the head element to the tail
myList.MoveToTail(myList.GetHeadPosition());
// Confirm the tail is as expected
ATLASSERT(myList.GetTail() == 4);
CAtlList::MoveToTail
Belirtilen öğeyi listenin kuyruğuna taşımak için bu yöntemi çağırın.
void MoveToTail(POSITION pos) throw();
Parametreler
Pos
Taşınacak öğenin POSITION değeri.
Açıklamalar
Belirtilen öğe geçerli konumundan listenin kuyruğuna taşınır. Hata ayıklama derlemelerinde, pos NULL'a eşitse bir onaylama hatası oluşur.
Örnek
CAtlList::MoveToHead örneğine bakın.
CAtlList::RemoveAll
Listedeki tüm öğeleri kaldırmak için bu yöntemi çağırın.
void RemoveAll() throw();
Açıklamalar
Bu yöntem, listedeki tüm öğeleri kaldırır ve ayrılan belleği serbest bırakır. Hata ayıklama derlemelerinde, tüm öğeler silinmezse veya liste yapısı bozulursa bir ATLASSERT oluşturulur.
Örnek
CAtlList::IsEmpty örneğine bakın.
CAtlList::RemoveAt
Listeden tek bir öğeyi kaldırmak için bu yöntemi çağırın.
void RemoveAt(POSITION pos) throw();
Parametreler
Pos
Kaldırılacak öğenin POSITION değeri.
Açıklamalar
Pos tarafından başvuruda bulunan öğe kaldırılır ve bellek serbesttir. Listenin başını veya kuyruğunu kaldırmak için kullanılması RemoveAt
kabul edilebilir.
Hata ayıklama derlemelerinde, liste geçerli değilse veya öğenin kaldırılması listenin liste yapısının parçası olmayan belleğe erişmesine neden oluyorsa onay hatası oluşur.
Örnek
// Define the integer list
CAtlList<int> myList;
// Populate the list
myList.AddTail(100);
myList.AddTail(200);
myList.AddTail(300);
// Use RemoveAt to remove elements one by one
myList.RemoveAt(myList.Find(100));
myList.RemoveAt(myList.Find(200));
myList.RemoveAt(myList.Find(300));
// Confirm all have been deleted
ATLASSERT(myList.IsEmpty() == true);
CAtlList::RemoveHead
Listenin başındaki öğesini kaldırmak için bu yöntemi çağırın.
E RemoveHead();
Dönüş Değeri
Listenin başındaki öğesini döndürür.
Açıklamalar
Head öğesi listeden silinir ve bellek serbest bırakılır. öğesinin bir kopyası döndürülür. Hata ayıklama derlemelerinde, liste boşsa onay hatası oluşur.
Örnek
// Define the integer list
CAtlList<int> myList;
// Populate the list
myList.AddTail(100);
myList.AddTail(200);
myList.AddTail(300);
// Confirm the head of the list
ATLASSERT(myList.GetHead() == 100);
// Remove the head of the list
ATLASSERT(myList.RemoveHead() == 100);
// Confirm the new head of the list
ATLASSERT(myList.GetHead() == 200);
CAtlList::RemoveHeadNoReturn
Bir değer döndürmeden listenin başındaki öğesini kaldırmak için bu yöntemi çağırın.
void RemoveHeadNoReturn() throw();
Açıklamalar
Head öğesi listeden silinir ve bellek serbest bırakılır. Hata ayıklama derlemelerinde, liste boşsa onay hatası oluşur.
Örnek
CAtlList::IsEmpty örneğine bakın.
CAtlList::RemoveTail
Listenin kuyruğundaki öğesini kaldırmak için bu yöntemi çağırın.
E RemoveTail();
Dönüş Değeri
Listenin sonundaki öğesini döndürür.
Açıklamalar
Tail öğesi listeden silinir ve bellek serbest bırakılır. öğesinin bir kopyası döndürülür. Hata ayıklama derlemelerinde, liste boşsa onay hatası oluşur.
Örnek
// Define the integer list
CAtlList<int> myList;
// Populate the list
myList.AddTail(100);
myList.AddTail(200);
myList.AddTail(300);
// Confirm the tail of the list
ATLASSERT(myList.GetTail() == 300);
// Remove the tail of the list
ATLASSERT(myList.RemoveTail() == 300);
// Confirm the new tail of the list
ATLASSERT(myList.GetTail() == 200);
CAtlList::RemoveTailNoReturn
Bir değer döndürmeden listenin sonundaki öğesini kaldırmak için bu yöntemi çağırın.
void RemoveTailNoReturn() throw();
Açıklamalar
Tail öğesi listeden silinir ve bellek serbest bırakılır. Hata ayıklama derlemelerinde, liste boşsa onay hatası oluşur.
Örnek
CAtlList::IsEmpty örneğine bakın.
CAtlList::SetAt
Öğesinin değerini listede belirli bir konumda ayarlamak için bu yöntemi çağırın.
void SetAt(POSITION pos, INARGTYPE element);
Parametreler
Pos
Değiştirecek öğeye karşılık gelen POSITION değeri.
öğe
Yeni öğe değeri.
Açıklamalar
Var olan değeri öğesiyle değiştirir. Hata ayıklama derlemelerinde, pos NULL'a eşitse bir onaylama hatası oluşur.
Örnek
// Define the integer list
CAtlList<int> myList;
// Populate the list
myList.AddTail(100);
myList.AddTail(200);
// Use SetAt to change the values stored in the head and
// tail of the list
myList.SetAt(myList.GetHeadPosition(), myList.GetHead() * 10);
myList.SetAt(myList.GetTailPosition(), myList.GetTail() * 10);
// Confirm the values
ATLASSERT(myList.GetHead() == 1000);
ATLASSERT(myList.GetTail() == 2000);
CAtlList::SwapElements
Listedeki öğeleri değiştirmek için bu yöntemi çağırın.
void SwapElements(POSITION pos1, POSITION pos2) throw();
Parametreler
pos1
İlk POSITION değeri.
pos2
İkinci POSITION değeri.
Açıklamalar
Belirtilen iki konumdaki öğeleri değiştirir. Hata ayıklama derlemelerinde, konum değerlerinden biri NULL'a eşitse onay hatası oluşur.
Örnek
// Define the integer list
CAtlList<int> myList;
// Populate the list
for (int i = 0; i < 100; i++)
{
myList.AddHead(i);
}
// Order is: 99, 98, 97, 96...
ATLASSERT(myList.GetHead() == 99);
ATLASSERT(myList.GetTail() == 0);
// Perform a crude bubble sort
for (int j = 0; j < 100; j++)
{
for(int i = 0; i < 99; i++)
{
if (myList.GetAt(myList.FindIndex(i)) >
myList.GetAt(myList.FindIndex(i+1)))
{
myList.SwapElements(myList.FindIndex(i), myList.FindIndex(i+1));
}
}
}
// Order is: 0, 1, 2, 3...
ATLASSERT(myList.GetHead() == 0);
ATLASSERT(myList.GetTail() == 99);