Kelas CAtlList
Kelas ini menyediakan metode untuk membuat dan mengelola objek daftar.
Sintaks
template<typename E, class ETraits = CElementTraits<E>>
class CAtlList
Parameter
E
Jenis elemen.
ETraits
Kode yang digunakan untuk menyalin atau memindahkan elemen. Lihat Kelas CElementTraits untuk detail selengkapnya.
Anggota
Typedef Publik
Nama | Deskripsi |
---|---|
CAtlList::INARGTYPE |
Konstruktor Publik
Nama | Deskripsi |
---|---|
CAtlList::CAtlList | Konstruktor. |
CAtlList::~CAtlList | Destruktor. |
Metode Publik
Nama | Deskripsi |
---|---|
CAtlList::AddHead | Panggil metode ini untuk menambahkan elemen ke kepala daftar. |
CAtlList::AddHeadList | Panggil metode ini untuk menambahkan daftar yang sudah ada ke kepala daftar. |
CAtlList::AddTail | Panggil metode ini untuk menambahkan elemen ke ekor daftar ini. |
CAtlList::AddTailList | Panggil metode ini untuk menambahkan daftar yang sudah ada ke ekor daftar ini. |
CAtlList::AssertValid | Panggil metode ini untuk mengonfirmasi bahwa daftar valid. |
CAtlList::Find | Panggil metode ini untuk mencari daftar elemen yang ditentukan. |
CAtlList::FindIndex | Panggil metode ini untuk mendapatkan posisi elemen, dengan nilai indeks. |
CAtlList::GetAt | Panggil metode ini untuk mengembalikan elemen pada posisi tertentu dalam daftar. |
CAtlList::GetCount | Panggil metode ini untuk mengembalikan jumlah objek dalam daftar. |
CAtlList::GetHead | Panggil metode ini untuk mengembalikan elemen di kepala daftar. |
CAtlList::GetHeadPosition | Panggil metode ini untuk mendapatkan posisi kepala daftar. |
CAtlList::GetNext | Panggil metode ini untuk mengembalikan elemen berikutnya dari daftar. |
CAtlList::GetPrev | Panggil metode ini untuk mengembalikan elemen sebelumnya dari daftar. |
CAtlList::GetTail | Panggil metode ini untuk mengembalikan elemen di ekor daftar. |
CAtlList::GetTailPosition | Panggil metode ini untuk mendapatkan posisi ekor daftar. |
CAtlList::InsertAfter | Panggil metode ini untuk menyisipkan elemen baru ke dalam daftar setelah posisi yang ditentukan. |
CAtlList::InsertBefore | Panggil metode ini untuk menyisipkan elemen baru ke dalam daftar sebelum posisi yang ditentukan. |
CAtlList::IsEmpty | Panggil metode ini untuk menentukan apakah daftar kosong. |
CAtlList::MoveToHead | Panggil metode ini untuk memindahkan elemen yang ditentukan ke kepala daftar. |
CAtlList::MoveToTail | Panggil metode ini untuk memindahkan elemen yang ditentukan ke ekor daftar. |
CAtlList::RemoveAll | Panggil metode ini untuk menghapus semua elemen dari daftar. |
CAtlList::RemoveAt | Panggil metode ini untuk menghapus satu elemen dari daftar. |
CAtlList::RemoveHead | Panggil metode ini untuk menghapus elemen di kepala daftar. |
CAtlList::RemoveHeadNoReturn | Panggil metode ini untuk menghapus elemen di kepala daftar tanpa mengembalikan nilai. |
CAtlList::RemoveTail | Panggil metode ini untuk menghapus elemen di ekor daftar. |
CAtlList::RemoveTailNoReturn | Panggil metode ini untuk menghapus elemen di ekor daftar tanpa mengembalikan nilai. |
CAtlList::SetAt | Panggil metode ini untuk mengatur nilai elemen pada posisi tertentu dalam daftar. |
CAtlList::SwapElements | Panggil metode ini untuk menukar elemen dalam daftar. |
Keterangan
Kelas CAtlList
ini mendukung daftar objek nonunique yang diurutkan yang dapat diakses secara berurutan atau berdasarkan nilai. CAtlList
mencantumkan perilaku seperti daftar yang ditautkan bergantian. Setiap daftar memiliki kepala dan ekor, dan elemen baru (atau daftar dalam beberapa kasus) dapat ditambahkan ke salah satu akhir daftar, atau disisipkan sebelum atau sesudah elemen tertentu.
Sebagian CAtlList
besar metode menggunakan nilai posisi. Nilai ini digunakan oleh metode untuk mereferensikan lokasi memori aktual tempat elemen disimpan, dan tidak boleh dihitung atau diprediksi secara langsung. Jika perlu mengakses elemen nth dalam daftar, metode CAtlList::FindIndex akan mengembalikan nilai posisi yang sesuai untuk indeks tertentu. Metode CAtlList::GetNext dan CAtlList::GetPrev dapat digunakan untuk melakukan iterasi melalui objek dalam daftar.
Untuk informasi selengkapnya mengenai kelas koleksi yang tersedia dengan ATL, lihat Kelas Koleksi ATL.
Persyaratan
Header: atlcoll.h
CAtlList::AddHead
Panggil metode ini untuk menambahkan elemen ke kepala daftar.
POSITION AddHead();
POSITION AddHead(INARGTYPE element);
Parameter
elemen
Elemen baru.
Tampilkan Nilai
Mengembalikan posisi elemen yang baru ditambahkan.
Keterangan
Jika versi pertama digunakan, elemen kosong dibuat menggunakan konstruktor defaultnya, bukan konstruktor salinannya.
Contoh
// 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
Panggil metode ini untuk menambahkan daftar yang sudah ada ke kepala daftar.
void AddHeadList(const CAtlList<E, ETraits>* plNew);
Parameter
plNew
Daftar yang akan ditambahkan.
Keterangan
Daftar yang diarahkan oleh plNew disisipkan di awal daftar yang ada. Dalam build debug, kegagalan pernyataan akan terjadi jika plNew sama dengan NULL.
Contoh
// 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
Panggil metode ini untuk menambahkan elemen ke ekor daftar ini.
POSITION AddTail();
POSITION AddTail(INARGTYPE element);
Parameter
elemen
Elemen yang akan ditambahkan.
Tampilkan Nilai
Mengembalikan POSISI elemen yang baru ditambahkan.
Keterangan
Jika versi pertama digunakan, elemen kosong dibuat menggunakan konstruktor defaultnya, bukan konstruktor salinannya. Elemen ditambahkan ke akhir daftar, sehingga sekarang menjadi ekor. Metode ini dapat digunakan dengan daftar kosong.
Contoh
// 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
Panggil metode ini untuk menambahkan daftar yang sudah ada ke ekor daftar ini.
void AddTailList(const CAtlList<E, ETraits>* plNew);
Parameter
plNew
Daftar yang akan ditambahkan.
Keterangan
Daftar yang diarahkan oleh plNew disisipkan setelah elemen terakhir (jika ada) dalam objek daftar. Elemen terakhir dalam daftar plNew oleh karena itu menjadi ekor. Dalam build debug, kegagalan pernyataan akan terjadi jika plNew sama dengan NULL.
Contoh
// 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
Panggil metode ini untuk mengonfirmasi bahwa daftar valid.
void AssertValid() const;
Keterangan
Dalam build debug, kegagalan pernyataan akan terjadi jika objek daftar tidak valid. Agar valid, daftar kosong harus memiliki kepala dan ekor yang menunjuk ke NULL, dan daftar yang tidak kosong harus memiliki kepala dan ekor yang menunjuk ke alamat yang valid.
Contoh
// Define the list
CAtlList<int> myList;
// AssertValid only exists in debug builds
#ifdef _DEBUG
myList.AssertValid();
#endif
CAtlList::CAtlList
Konstruktor.
CAtlList(UINT nBlockSize = 10) throw();
Parameter
nBlockSize
Ukuran blok.
Keterangan
Konstruktor untuk CAtlList
objek. Ukuran blok adalah ukuran jumlah memori yang dialokasikan ketika elemen baru diperlukan. Ukuran blok yang lebih besar mengurangi panggilan ke rutinitas alokasi memori, tetapi menggunakan lebih banyak sumber daya.
Contoh
// Define two lists
CAtlList<int> myList1;
CAtlList<double> myList2;
CAtlList::~CAtlList
Destruktor.
~CAtlList() throw();
Keterangan
Membebaskan semua sumber daya yang dialokasikan, termasuk panggilan ke CAtlList::RemoveAll untuk menghapus semua elemen dari daftar.
Dalam build debug, kegagalan pernyataan akan terjadi jika daftar masih berisi beberapa elemen setelah panggilan ke RemoveAll
.
CAtlList::Find
Panggil metode ini untuk mencari daftar elemen yang ditentukan.
POSITION Find(INARGTYPE element, POSITION posStartAfter = NULL) const throw();
Parameter
elemen
Elemen yang akan ditemukan dalam daftar.
posStartAfter
Posisi awal untuk pencarian. Jika tidak ada nilai yang ditentukan, pencarian dimulai dengan elemen head.
Tampilkan Nilai
Mengembalikan nilai POSITION dari elemen jika ditemukan, jika tidak, mengembalikan NULL.
Keterangan
Dalam build debug, kegagalan pernyataan akan terjadi jika objek daftar tidak valid, atau jika nilai posStartAfter berada di luar rentang.
Contoh
// 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
Panggil metode ini untuk mendapatkan posisi elemen, dengan nilai indeks.
POSITION FindIndex(size_t iElement) const throw();
Parameter
iElement
Indeks berbasis nol dari elemen daftar yang diperlukan.
Tampilkan Nilai
Mengembalikan nilai POSITION yang sesuai, atau NULL jika iElement berada di luar rentang.
Keterangan
Metode ini mengembalikan POSITION yang sesuai dengan nilai indeks tertentu, memungkinkan akses ke elemen nth dalam daftar.
Dalam build debug, kegagalan pernyataan akan terjadi jika objek daftar tidak valid.
Contoh
// 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
Panggil metode ini untuk mengembalikan elemen pada posisi tertentu dalam daftar.
E& GetAt(POSITION pos) throw();
const E& GetAt(POSITION pos) const throw();
Parameter
pos
Nilai POSITION yang menentukan elemen tertentu.
Tampilkan Nilai
Referensi ke, atau salinan, elemen .
Keterangan
Jika daftarnya adalah const
, GetAt
mengembalikan salinan elemen . Ini memungkinkan metode untuk digunakan hanya di sisi kanan pernyataan penugasan dan melindungi daftar dari modifikasi.
Jika daftar bukan const
, GetAt
mengembalikan referensi ke elemen . Ini memungkinkan metode untuk digunakan di salah satu sisi pernyataan penugasan dan dengan demikian memungkinkan entri daftar untuk dimodifikasi.
Dalam build debug, kegagalan pernyataan akan terjadi jika pos sama dengan NULL.
Contoh
Lihat contoh untuk CAtlList::FindIndex.
CAtlList::GetCount
Panggil metode ini untuk mengembalikan jumlah objek dalam daftar.
size_t GetCount() const throw();
Tampilkan Nilai
Mengembalikan jumlah elemen dalam daftar.
Contoh
Lihat contoh untuk CAtlList::Find.
CAtlList::GetHead
Panggil metode ini untuk mengembalikan elemen di kepala daftar.
E& GetHead() throw();
const E& GetHead() const throw();
Tampilkan Nilai
Mengembalikan referensi ke, atau salinan, elemen di kepala daftar.
Keterangan
Jika daftarnya adalah const
, GetHead
mengembalikan salinan elemen di kepala daftar. Ini memungkinkan metode untuk digunakan hanya di sisi kanan pernyataan penugasan dan melindungi daftar dari modifikasi.
Jika daftar bukan const
, GetHead
mengembalikan referensi ke elemen di kepala daftar. Ini memungkinkan metode untuk digunakan di salah satu sisi pernyataan penugasan dan dengan demikian memungkinkan entri daftar untuk dimodifikasi.
Dalam build debug, kegagalan pernyataan akan terjadi jika kepala daftar menunjuk ke NULL.
Contoh
Lihat contoh untuk CAtlList::AddHead.
CAtlList::GetHeadPosition
Panggil metode ini untuk mendapatkan posisi kepala daftar.
POSITION GetHeadPosition() const throw();
Tampilkan Nilai
Mengembalikan nilai POSITION yang sesuai dengan elemen di kepala daftar.
Keterangan
Jika daftar kosong, nilai yang dikembalikan adalah NULL.
Contoh
// 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
Panggil metode ini untuk mengembalikan elemen berikutnya dari daftar.
E& GetNext(POSITION& pos) throw();
const E& GetNext(POSITION& pos) const throw();
Parameter
pos
Nilai POSITION, dikembalikan oleh panggilan sebelumnya ke GetNext
, CAtlList::GetHeadPosition, atau metode lainnya CAtlList
.
Tampilkan Nilai
Jika daftarnya adalah const
, GetNext
mengembalikan salinan elemen berikutnya dari daftar. Ini memungkinkan metode untuk digunakan hanya di sisi kanan pernyataan penugasan dan melindungi daftar dari modifikasi.
Jika daftar bukan const
, GetNext
mengembalikan referensi ke elemen daftar berikutnya. Ini memungkinkan metode untuk digunakan di salah satu sisi pernyataan penugasan dan dengan demikian memungkinkan entri daftar untuk dimodifikasi.
Keterangan
Penghitung POSISI, pos, diperbarui untuk menunjuk ke elemen berikutnya dalam daftar, atau NULL jika tidak ada lagi elemen. Dalam build debug, kegagalan pernyataan akan terjadi jika pos sama dengan NULL.
Contoh
Lihat contoh untuk CAtlList::GetHeadPosition.
CAtlList::GetPrev
Panggil metode ini untuk mengembalikan elemen sebelumnya dari daftar.
E& GetPrev(POSITION& pos) throw();
const E& GetPrev(POSITION& pos) const throw();
Parameter
pos
Nilai POSITION, dikembalikan oleh panggilan sebelumnya ke GetPrev
, CAtlList::GetTailPosition, atau metode lainnya CAtlList
.
Tampilkan Nilai
Jika daftarnya adalah const
, GetPrev
mengembalikan salinan elemen daftar. Ini memungkinkan metode untuk digunakan hanya di sisi kanan pernyataan penugasan dan melindungi daftar dari modifikasi.
Jika daftar bukan const
, GetPrev
mengembalikan referensi ke elemen daftar. Ini memungkinkan metode untuk digunakan di salah satu sisi pernyataan penugasan dan dengan demikian memungkinkan entri daftar untuk dimodifikasi.
Keterangan
Penghitung POSISI, pos, diperbarui untuk menunjuk ke elemen sebelumnya dalam daftar, atau NULL jika tidak ada lagi elemen. Dalam build debug, kegagalan pernyataan akan terjadi jika pos sama dengan NULL.
Contoh
Lihat contoh untuk CAtlList::GetTailPosition.
CAtlList::GetTail
Panggil metode ini untuk mengembalikan elemen di ekor daftar.
E& GetTail() throw();
const E& GetTail() const throw();
Tampilkan Nilai
Mengembalikan referensi ke, atau salinan, elemen di ekor daftar.
Keterangan
Jika daftarnya adalah const
, GetTail
mengembalikan salinan elemen di kepala daftar. Ini memungkinkan metode untuk digunakan hanya di sisi kanan pernyataan penugasan dan melindungi daftar dari modifikasi.
Jika daftar bukan const
, GetTail
mengembalikan referensi ke elemen di kepala daftar. Ini memungkinkan metode untuk digunakan di salah satu sisi pernyataan penugasan dan dengan demikian memungkinkan entri daftar untuk dimodifikasi.
Dalam build debug, kegagalan pernyataan akan terjadi jika ekor daftar menunjuk ke NULL.
Contoh
Lihat contoh untuk CAtlList::AddTail.
CAtlList::GetTailPosition
Panggil metode ini untuk mendapatkan posisi ekor daftar.
POSITION GetTailPosition() const throw();
Tampilkan Nilai
Mengembalikan nilai POSITION yang sesuai dengan elemen di ekor daftar.
Keterangan
Jika daftar kosong, nilai yang dikembalikan adalah NULL.
Contoh
// 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
Jenis yang digunakan saat elemen diteruskan sebagai argumen input.
typedef ETraits::INARGTYPE INARGTYPE;
CAtlList::InsertAfter
Panggil metode ini untuk menyisipkan elemen baru ke dalam daftar setelah posisi yang ditentukan.
POSITION InsertAfter(POSITION pos, INARGTYPE element);
Parameter
pos
Nilai POSITION setelah elemen baru akan disisipkan.
elemen
Elemen yang akan disisipkan.
Tampilkan Nilai
Mengembalikan nilai POSITION dari elemen baru.
Keterangan
Dalam build debug, kegagalan pernyataan akan terjadi jika daftar tidak valid, jika penyisipan gagal, atau jika upaya dilakukan untuk menyisipkan elemen setelah ekor.
Contoh
// 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
Panggil metode ini untuk menyisipkan elemen baru ke dalam daftar sebelum posisi yang ditentukan.
POSITION InsertBefore(POSITION pos, INARGTYPE element);
Parameter
pos
Elemen baru akan dimasukkan ke dalam daftar sebelum nilai POSITION ini.
elemen
Elemen yang akan disisipkan.
Tampilkan Nilai
Mengembalikan nilai POSITION dari elemen baru.
Keterangan
Dalam build debug, kegagalan pernyataan akan terjadi jika daftar tidak valid, jika penyisipan gagal, atau jika upaya dilakukan untuk menyisipkan elemen di depan kepala.
Contoh
// 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
Panggil metode ini untuk menentukan apakah daftar kosong.
bool IsEmpty() const throw();
Tampilkan Nilai
Mengembalikan true jika daftar tidak berisi objek, jika tidak salah.
Contoh
// 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
Panggil metode ini untuk memindahkan elemen yang ditentukan ke kepala daftar.
void MoveToHead(POSITION pos) throw();
Parameter
pos
Nilai POSISI elemen yang akan dipindahkan.
Keterangan
Elemen yang ditentukan dipindahkan dari posisinya saat ini ke kepala daftar. Dalam build debug, kegagalan pernyataan akan terjadi jika pos sama dengan NULL.
Contoh
// 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
Panggil metode ini untuk memindahkan elemen yang ditentukan ke ekor daftar.
void MoveToTail(POSITION pos) throw();
Parameter
pos
Nilai POSISI elemen yang akan dipindahkan.
Keterangan
Elemen yang ditentukan dipindahkan dari posisinya saat ini ke ekor daftar. Dalam build debug, kegagalan pernyataan akan terjadi jika pos sama dengan NULL.
Contoh
Lihat contoh untuk CAtlList::MoveToHead.
CAtlList::RemoveAll
Panggil metode ini untuk menghapus semua elemen dari daftar.
void RemoveAll() throw();
Keterangan
Metode ini menghapus semua elemen dari daftar dan membebaskan memori yang dialokasikan. Dalam build debug, ATLASSERT akan dinaikkan jika semua elemen tidak dihapus atau jika struktur daftar telah rusak.
Contoh
Lihat contoh untuk CAtlList::IsEmpty.
CAtlList::RemoveAt
Panggil metode ini untuk menghapus satu elemen dari daftar.
void RemoveAt(POSITION pos) throw();
Parameter
pos
Nilai POSISI elemen yang akan dihapus.
Keterangan
Elemen yang dirujuk oleh pos dihapus, dan memori dibebesarkan. Dapat diterima untuk menggunakan RemoveAt
untuk menghapus kepala atau ekor daftar.
Dalam build debug, kegagalan pernyataan akan terjadi jika daftar tidak valid atau jika menghapus elemen menyebabkan daftar mengakses memori yang bukan bagian dari struktur daftar.
Contoh
// 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
Panggil metode ini untuk menghapus elemen di kepala daftar.
E RemoveHead();
Tampilkan Nilai
Mengembalikan elemen di kepala daftar.
Keterangan
Elemen kepala dihapus dari daftar, dan memori dibebesarkan. Salinan elemen dikembalikan. Dalam build debug, kegagalan pernyataan akan terjadi jika daftar kosong.
Contoh
// 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
Panggil metode ini untuk menghapus elemen di kepala daftar tanpa mengembalikan nilai.
void RemoveHeadNoReturn() throw();
Keterangan
Elemen kepala dihapus dari daftar, dan memori dibebesarkan. Dalam build debug, kegagalan pernyataan akan terjadi jika daftar kosong.
Contoh
Lihat contoh untuk CAtlList::IsEmpty.
CAtlList::RemoveTail
Panggil metode ini untuk menghapus elemen di ekor daftar.
E RemoveTail();
Tampilkan Nilai
Mengembalikan elemen di ekor daftar.
Keterangan
Elemen ekor dihapus dari daftar, dan memori dibebesarkan. Salinan elemen dikembalikan. Dalam build debug, kegagalan pernyataan akan terjadi jika daftar kosong.
Contoh
// 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
Panggil metode ini untuk menghapus elemen di ekor daftar tanpa mengembalikan nilai.
void RemoveTailNoReturn() throw();
Keterangan
Elemen ekor dihapus dari daftar, dan memori dibebesarkan. Dalam build debug, kegagalan pernyataan akan terjadi jika daftar kosong.
Contoh
Lihat contoh untuk CAtlList::IsEmpty.
CAtlList::SetAt
Panggil metode ini untuk mengatur nilai elemen pada posisi tertentu dalam daftar.
void SetAt(POSITION pos, INARGTYPE element);
Parameter
pos
Nilai POSITION yang sesuai dengan elemen yang akan diubah.
elemen
Nilai elemen baru.
Keterangan
Mengganti nilai yang ada dengan elemen. Dalam build debug, kegagalan pernyataan akan terjadi jika pos sama dengan NULL.
Contoh
// 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
Panggil metode ini untuk menukar elemen dalam daftar.
void SwapElements(POSITION pos1, POSITION pos2) throw();
Parameter
pos1
Nilai POSISI pertama.
pos2
Nilai POSISI kedua.
Keterangan
Tukar elemen pada dua posisi yang ditentukan. Dalam build debug, kegagalan pernyataan akan terjadi jika salah satu nilai posisi sama dengan NULL.
Contoh
// 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);