CList
Kelas
Mendukung daftar objek nonunique yang diurutkan yang dapat diakses secara berurutan atau berdasarkan nilai.
Sintaks
template<class TYPE, class ARG_TYPE = const TYPE&>
class CList : public CObject
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CList::CList |
Membuat daftar pesanan kosong. |
Metode Publik
Nama | Deskripsi |
---|---|
CList::AddHead |
Menambahkan elemen (atau semua elemen dalam daftar lain) ke kepala daftar (membuat kepala baru). |
CList::AddTail |
Menambahkan elemen (atau semua elemen dalam daftar lain) ke ekor daftar (membuat ekor baru). |
CList::Find |
Mendapatkan posisi elemen yang ditentukan oleh nilai penunjuk. |
CList::FindIndex |
Mendapatkan posisi elemen yang ditentukan oleh indeks berbasis nol. |
CList::GetAt |
Mendapatkan elemen pada posisi tertentu. |
CList::GetCount |
Mengembalikan jumlah elemen dalam daftar ini. |
CList::GetHead |
Mengembalikan elemen kepala daftar (tidak boleh kosong). |
CList::GetHeadPosition |
Mengembalikan posisi elemen kepala daftar. |
CList::GetNext |
Mendapatkan elemen berikutnya untuk iterasi. |
CList::GetPrev |
Mendapatkan elemen sebelumnya untuk iterasi. |
CList::GetSize |
Mengembalikan jumlah elemen dalam daftar ini. |
CList::GetTail |
Mengembalikan elemen ekor daftar (tidak boleh kosong). |
CList::GetTailPosition |
Mengembalikan posisi elemen ekor daftar. |
CList::InsertAfter |
Menyisipkan elemen baru setelah posisi tertentu. |
CList::InsertBefore |
Menyisipkan elemen baru sebelum posisi tertentu. |
CList::IsEmpty |
Pengujian untuk kondisi daftar kosong (tanpa elemen). |
CList::RemoveAll |
Menghapus semua elemen dari daftar ini. |
CList::RemoveAt |
Menghapus elemen dari daftar ini, yang ditentukan oleh posisi. |
CList::RemoveHead |
Menghapus elemen dari kepala daftar. |
CList::RemoveTail |
Menghapus elemen dari ekor daftar. |
CList::SetAt |
Mengatur elemen pada posisi tertentu. |
Parameter
TYPE
Jenis objek yang disimpan dalam daftar.
ARG_TYPE
Jenis yang digunakan untuk mereferensikan objek yang disimpan dalam daftar. Bisa menjadi referensi.
Keterangan
CList
mencantumkan perilaku seperti daftar yang ditautkan bergantian.
Variabel jenis POSITION
adalah kunci untuk daftar. Anda dapat menggunakan POSITION
variabel sebagai iterator untuk melintasi daftar secara berurutan dan sebagai marka buku untuk menyimpan tempat. Namun, posisi tidak sama dengan indeks.
Penyisipan elemen sangat cepat di kepala daftar, di ekor, dan pada yang diketahui POSITION
. Pencarian berurutan diperlukan untuk mencari elemen berdasarkan nilai atau indeks. Pencarian ini bisa lambat jika daftar panjang.
Jika Anda memerlukan cadangan elemen individual dalam daftar, Anda harus mengatur kedalaman konteks cadangan ke 1 atau lebih besar.
Fungsi anggota tertentu dari kelas ini memanggil fungsi pembantu global yang harus disesuaikan untuk sebagian besar penggunaan CList
kelas. Lihat Pembantu Kelas Koleksi di bagian "Makro dan Global".
Untuk informasi selengkapnya tentang menggunakan CList
, lihat artikel Koleksi.
Contoh
// CList is a template class that takes two template arguments.
// The first argument is type stored internally by the list, the
// second argument is the type used in the arguments for the
// CList methods.
// This code defines a list of ints.
CList<int, int> myIntList;
// This code defines a list of CStrings
CList<CString, CString &> myStringList;
// This code defines a list of MYTYPEs,
// NOTE: MYTYPE could be any struct, class or type definition
CList<MYTYPE, MYTYPE &> myTypeList;
Hierarki Warisan
CList
Persyaratan
Header: afxtempl.h
CList::AddHead
Menambahkan elemen atau daftar elemen baru ke kepala daftar ini.
POSITION AddHead(ARG_TYPE newElement);
void AddHead(CList* pNewList);
Parameter
ARG_TYPE
Parameter templat yang menentukan jenis elemen daftar (dapat menjadi referensi).
newElement
Elemen baru.
pNewList
Penunjuk ke daftar lain CList
. Elemen di pNewList
akan ditambahkan ke daftar ini.
Tampilkan Nilai
Versi pertama mengembalikan POSITION
nilai elemen yang baru disisipkan.
Keterangan
Daftar dapat kosong sebelum operasi.
Contoh
// Declarations of the variables used in the example
CList<CString, CString &> myList;
CList<CString, CString &> myList2;
// There are two versions of CList::AddHead: one adds a single
// element to the front of the list, the second adds another list
// to the front.
// This adds the string "ABC" to the front of myList.
// myList is a list of CStrings (ie defined as CList<CString,CString&>).
myList.AddHead(CString(_T("ABC")));
// This adds the elements of myList2 to the front of myList.
myList.AddHead(&myList2);
CList::AddTail
Menambahkan elemen atau daftar elemen baru ke ekor daftar ini.
POSITION AddTail(ARG_TYPE newElement);
void AddTail(CList* pNewList);
Parameter
ARG_TYPE
Parameter templat yang menentukan jenis elemen daftar (dapat menjadi referensi).
newElement
Elemen yang akan ditambahkan ke daftar ini.
pNewList
Penunjuk ke daftar lain CList
. Elemen di pNewList
akan ditambahkan ke daftar ini.
Tampilkan Nilai
Versi pertama mengembalikan POSITION
nilai elemen yang baru disisipkan.
Keterangan
Daftar dapat kosong sebelum operasi.
Contoh
// Define myList and myList2.
CList<CString, CString &> myList;
CList<CString, CString &> myList2;
// Add elements to the end of myList and myList2.
myList.AddTail(CString(_T("A")));
myList.AddTail(CString(_T("B")));
myList2.AddTail(CString(_T("C")));
myList2.AddTail(CString(_T("D")));
// There are two versions of CList::AddTail: one adds a single
// element to the end of the list, the second adds another list
// to the end.
// This adds the string "ABC" to the end of myList.
// myList is a list of CStrings (ie defined as CList<CString,CString&>).
myList.AddTail(CString(_T("ABC")));
ASSERT(CString(_T("ABC")) == myList.GetTail());
// This adds the elements of myList2 to the end of myList.
myList.AddTail(&myList2);
CList::CList
Membuat daftar pesanan kosong.
CList(INT_PTR nBlockSize = 10);
Parameter
nBlockSize
Granularitas alokasi memori untuk memperluas daftar.
Keterangan
Seiring bertambahnya daftar, memori dialokasikan dalam satuan nBlockSize
entri.
Contoh
// This code defines myList as a list of strings
// such that memory gets allocated in chunks of
// 16 strings.
CList<CString, CString &> myList(16);
// This code defines myList2 as a list of ints
// such that memory gets allocated in chunks of
// 128 ints.
CList<int, int> myList2(128);
CList::Find
Mencari daftar secara berurutan untuk menemukan elemen pertama yang cocok dengan yang ditentukan searchValue
.
POSITION Find(
ARG_TYPE searchValue,
POSITION startAfter = NULL) const;
Parameter
ARG_TYPE
Parameter templat yang menentukan jenis elemen daftar (dapat menjadi referensi).
searchValue
Nilai yang akan ditemukan dalam daftar.
startAfter
Posisi awal untuk pencarian. Jika tidak ada nilai yang ditentukan, pencarian dimulai dengan elemen head.
Tampilkan Nilai
Nilai POSITION
yang dapat digunakan untuk perulangan atau pengambilan penunjuk objek; NULL
jika objek tidak ditemukan.
Contoh
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
myList.AddHead(CString(_T("XYZ")));
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));
// Find a specific element.
POSITION pos = myList.Find(CString(_T("XYZ")));
ASSERT(CString(_T("XYZ")) == myList.GetAt(pos));
CList::FindIndex
Menggunakan nilai nIndex
sebagai indeks ke dalam daftar.
POSITION FindIndex(INT_PTR nIndex) const;
Parameter
nIndex
Indeks berbasis nol dari elemen daftar yang akan ditemukan.
Tampilkan Nilai
POSITION
Nilai yang dapat digunakan untuk perulangan atau pengambilan penunjuk objek; NULL
jika nIndex
negatif atau terlalu besar.
Keterangan
Ini memulai pemindaian berurutan dari kepala daftar, berhenti pada elemen nth.
Contoh
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Verify the first element (index 0).
ASSERT(CString(_T("XYZ")) == myList.GetAt(myList.FindIndex(0)));
// Verify the third element (index 2).
ASSERT(CString(_T("123")) == myList.GetAt(myList.FindIndex(2)));
CList::GetAt
Mendapatkan elemen daftar pada posisi tertentu.
TYPE& GetAt(POSITION position);
const TYPE& GetAt(POSITION position) const;
Parameter
TYPE
Parameter templat yang menentukan jenis objek dalam daftar.
position
Posisi dalam daftar elemen yang akan didapatkan.
Tampilkan Nilai
Lihat deskripsi nilai pengembalian untuk GetHead
.
Keterangan
GetAt
mengembalikan elemen (atau referensi ke elemen) yang terkait dengan posisi tertentu. Ini tidak sama dengan indeks, dan Anda tidak dapat beroperasi pada POSITION
nilai sendiri. Variabel jenis POSITION
adalah kunci untuk daftar.
Anda harus memastikan bahwa nilai Anda POSITION
mewakili posisi yang valid dalam daftar. Jika tidak valid, maka versi Debug dari Microsoft Foundation Class Library menegaskan.
Contoh
Lihat contoh untuk CList::GetHeadPosition
.
CList::GetCount
Mendapatkan jumlah elemen dalam daftar ini.
INT_PTR GetCount() const;
Tampilkan Nilai
Nilai bilangan bulat yang berisi jumlah elemen.
Keterangan
Memanggil metode ini akan menghasilkan hasil yang sama dengan CList::GetSize
metode .
Contoh
Lihat contoh untuk CList::RemoveHead
.
CList::GetHead
Mendapatkan elemen kepala (atau referensi ke elemen kepala) dari daftar ini.
const TYPE& GetHead() const;
TYPE& GetHead();
Parameter
TYPE
Parameter templat yang menentukan jenis objek dalam daftar.
Tampilkan Nilai
Jika daftarnya adalah const
, GetHead
mengembalikan salinan elemen di kepala daftar. Ini memungkinkan fungsi hanya digunakan di sisi kanan pernyataan penugasan dan melindungi daftar dari modifikasi.
Jika daftar bukan const
, GetHead
mengembalikan referensi ke elemen di kepala daftar. Ini memungkinkan fungsi untuk digunakan di salah satu sisi pernyataan penugasan dan dengan demikian memungkinkan entri daftar untuk dimodifikasi.
Keterangan
Anda harus memastikan bahwa daftar tidak kosong sebelum memanggil GetHead
. Jika daftar kosong, maka versi Debug dari Microsoft Foundation Class Library menegaskan. Gunakan IsEmpty
untuk memverifikasi bahwa daftar berisi elemen.
Contoh
// Define myList.
CList<CString, CString &> myList;
// Add an element to the front of the list.
myList.AddHead(CString(_T("ABC")));
// Verify the element was added to the front of the list.
ASSERT(CString(_T("ABC")) == myList.GetHead());
CList::GetHeadPosition
Mendapatkan posisi elemen kepala dari daftar ini.
POSITION GetHeadPosition() const;
Tampilkan Nilai
Nilai POSITION
yang dapat digunakan untuk perulangan atau pengambilan penunjuk objek; NULL
jika daftar kosong.
Contoh
// Define myList.
CList<CString, CString &> myList;
// Add an element to the front of the list.
myList.AddHead(CString(_T("ABC")));
// Verify the element at the head position
// is the one added.
POSITION pos = myList.GetHeadPosition();
ASSERT(CString(_T("ABC")) == myList.GetAt(pos));
CList::GetNext
Mendapatkan elemen daftar yang diidentifikasi oleh rPosition
, lalu diatur rPosition
ke POSITION
nilai entri berikutnya dalam daftar.
TYPE& GetNext(POSITION& rPosition);
const TYPE& GetNext(POSITION& rPosition) const;
Parameter
TYPE
Parameter templat yang menentukan jenis elemen dalam daftar.
rPosition
Referensi ke nilai yang POSITION
dikembalikan oleh panggilan fungsi anggota sebelumnya GetNext
, GetHeadPosition
, atau lainnya.
Tampilkan Nilai
Jika daftarnya adalah const
, GetNext
mengembalikan salinan elemen daftar. Ini memungkinkan fungsi hanya digunakan di sisi kanan pernyataan penugasan dan melindungi daftar dari modifikasi.
Jika daftar bukan const
, GetNext
mengembalikan referensi ke elemen daftar. Ini memungkinkan fungsi untuk digunakan di salah satu sisi pernyataan penugasan dan dengan demikian memungkinkan entri daftar untuk dimodifikasi.
Keterangan
Anda dapat menggunakan GetNext
dalam perulangan perulangan penerusan jika Anda membuat posisi awal dengan panggilan ke GetHeadPosition
atau Find
.
Anda harus memastikan bahwa nilai Anda POSITION
mewakili posisi yang valid dalam daftar. Jika tidak valid, maka versi Debug dari Microsoft Foundation Class Library menegaskan.
Jika elemen yang diambil adalah yang terakhir dalam daftar, maka nilai rPosition
baru diatur ke NULL.
Contoh
// Define myList.
// Define myList.
CList<CString, CString &> myList;
// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));
// Dump the list elements to the debug window.
POSITION pos = myList.GetHeadPosition();
for (int i = 0; i < myList.GetCount(); i++)
{
TRACE(_T("%s\r\n"), (LPCTSTR)myList.GetNext(pos));
}
CList::GetPrev
Mendapatkan elemen daftar yang diidentifikasi oleh rPosition
, lalu diatur rPosition
ke POSITION
nilai entri sebelumnya dalam daftar.
TYPE& GetPrev(POSITION& rPosition);
const TYPE& GetPrev(POSITION& rPosition) const;
Parameter
TYPE
Parameter templat yang menentukan jenis elemen dalam daftar.
rPosition
Referensi ke nilai yang POSITION
dikembalikan oleh panggilan fungsi anggota sebelumnya GetPrev
atau lainnya.
Tampilkan Nilai
Jika daftarnya adalah const
, GetPrev
mengembalikan salinan elemen di kepala daftar. Ini memungkinkan fungsi hanya digunakan di sisi kanan pernyataan penugasan dan melindungi daftar dari modifikasi.
Jika daftar bukan const
, GetPrev
mengembalikan referensi ke elemen daftar. Ini memungkinkan fungsi untuk digunakan di salah satu sisi pernyataan penugasan dan dengan demikian memungkinkan entri daftar untuk dimodifikasi.
Keterangan
Anda dapat menggunakan GetPrev
dalam perulangan perulangan terbalik jika Anda menetapkan posisi awal dengan panggilan ke GetTailPosition
atau Find
.
Anda harus memastikan bahwa nilai Anda POSITION
mewakili posisi yang valid dalam daftar. Jika tidak valid, maka versi Debug dari Microsoft Foundation Class Library menegaskan.
Jika elemen yang diambil adalah yang pertama dalam daftar, maka nilai rPosition
baru diatur ke NULL
.
Contoh
// Define myList.
CList<CString,CString&> myList;
// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));
// Dump the list elements to the debug window,
// in reverse order.
POSITION pos = myList.GetTailPosition();
for (int i = 0; i < myList.GetCount(); i++)
{
TRACE(_T("%s\r\n"), (LPCTSTR)myList.GetPrev(pos));
}
CList::GetSize
Mengembalikan jumlah elemen daftar.
INT_PTR GetSize() const;
Tampilkan Nilai
Jumlah item dalam daftar.
Keterangan
Panggil metode ini untuk mengambil jumlah elemen dalam daftar. Memanggil metode ini akan menghasilkan hasil yang sama dengan CList::GetCount
metode .
Contoh
// Define myList.
CList<CString, CString &> myList;
// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));
// Remove the head element and verify the list.
// NOTE: once the head is removed, the number of
// elements in the list will be one.
CString strHead = myList.RemoveHead();
ASSERT((CString(_T("123")) == strHead) && (myList.GetSize() == 1) &&
(CString(_T("ABC")) == myList.GetHead()));
CList::GetTail
Mendapatkan penunjuk CObject
yang mewakili elemen ekor daftar ini.
TYPE& GetTail();
const TYPE& GetTail() const;
Parameter
TYPE
Parameter templat yang menentukan jenis elemen dalam daftar.
Tampilkan Nilai
Lihat deskripsi nilai pengembalian untuk GetHead
.
Keterangan
Anda harus memastikan bahwa daftar tidak kosong sebelum memanggil GetTail
. Jika daftar kosong, maka versi Debug dari Microsoft Foundation Class Library menegaskan. Gunakan IsEmpty
untuk memverifikasi bahwa daftar berisi elemen.
Contoh
// Define myList.
CList<CString, CString &> myList;
// Add an element to the end of the list.
myList.AddTail(CString(_T("ABC")));
// Verify the element was added to the end of the list.
ASSERT(CString(_T("ABC")) == myList.GetTail());
CList::GetTailPosition
Mendapatkan posisi elemen ekor dari daftar ini; NULL
jika daftar kosong.
POSITION GetTailPosition() const;
Tampilkan Nilai
Nilai POSITION
yang dapat digunakan untuk perulangan atau pengambilan penunjuk objek; NULL
jika daftar kosong.
Contoh
// Define myList.
CList<CString,CString&> myList;
// Add an element to the end of the list.
myList.AddTail(CString(_T("ABC")));
// Verify the element at the end position
// is the one added.
POSITION pos = myList.GetTailPosition();
ASSERT(CString(_T("ABC")) == myList.GetAt(pos));
CList::InsertAfter
Menambahkan elemen ke daftar ini setelah elemen pada posisi yang ditentukan.
POSITION InsertAfter(POSITION position, ARG_TYPE newElement);
Parameter
position
Nilai POSITION yang dikembalikan oleh panggilan fungsi anggota , , GetPrev
atau Find
sebelumnyaGetNext
.
ARG_TYPE
Parameter templat yang menentukan jenis elemen daftar.
newElement
Elemen yang akan ditambahkan ke daftar ini.
Tampilkan Nilai
Nilai POSITION
yang dapat digunakan untuk perulangan atau pengambilan elemen daftar.
Contoh
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
POSITION pos = myList.AddHead(CString(_T("XYZ")));
pos = myList.InsertAfter(pos, CString(_T("ABC")));
pos = myList.InsertAfter(pos, CString(_T("123")));
// Verify the tail element is what's expected.
ASSERT(CString(_T("123")) == myList.GetTail());
CList::InsertBefore
Menambahkan elemen ke daftar ini sebelum elemen pada posisi yang ditentukan.
POSITION InsertBefore(POSITION position, ARG_TYPE newElement);
Parameter
position
POSITION
Nilai yang dikembalikan oleh panggilan fungsi anggota , , GetPrev
atau Find
sebelumnyaGetNext
.
ARG_TYPE
Parameter templat yang menentukan jenis elemen daftar (dapat menjadi referensi).
newElement
Elemen yang akan ditambahkan ke daftar ini.
Tampilkan Nilai
Nilai POSITION
yang dapat digunakan untuk perulangan atau pengambilan elemen daftar.
Keterangan
Jika position
adalah NULL
, elemen disisipkan di kepala daftar.
Contoh
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
POSITION pos = myList.AddHead(CString(_T("XYZ")));
pos = myList.InsertBefore(pos, CString(_T("ABC")));
pos = myList.InsertBefore(pos, CString(_T("123")));
// Verify the head element is what's expected.
ASSERT(CString(_T("123")) == myList.GetHead());
CList::IsEmpty
Menunjukkan apakah daftar ini tidak berisi elemen.
BOOL IsEmpty() const;
Tampilkan Nilai
Bukan nol jika daftar ini kosong; jika tidak, 0.
Contoh
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Remove the head element until the list is empty.
CString str;
while (!myList.IsEmpty())
{
str = myList.RemoveHead();
TRACE(_T("%s\r\n"), (LPCTSTR)str);
}
CList::RemoveAll
Menghapus semua elemen dari daftar ini dan membebaskan memori terkait.
void RemoveAll();
Keterangan
Tidak ada kesalahan yang dihasilkan jika daftar sudah kosong.
Contoh
// Define myList.
CList<CString, CString&> myList;
// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Remove all of the elements in the list.
myList.RemoveAll();
// Verify the list is empty.
ASSERT(myList.IsEmpty());
CList::RemoveAt
Menghapus elemen yang ditentukan dari daftar ini.
void RemoveAt(POSITION position);
Parameter
position
Posisi elemen yang akan dihapus dari daftar.
Keterangan
Anda harus memastikan bahwa nilai Anda POSITION
mewakili posisi yang valid dalam daftar. Jika tidak valid, maka versi Debug dari Microsoft Foundation Class Library menegaskan.
Contoh
// Define myList.
CList<CString, CString&> myList;
// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Remove CString("ABC") from the list.
myList.RemoveAt(myList.FindIndex(1));
// Verify CString("ABC") is not in the list.
ASSERT(myList.Find(CString(_T("ABC"))) == NULL);
CList::RemoveHead
Menghapus elemen dari kepala daftar dan mengembalikan pointer ke dalamnya.
TYPE RemoveHead();
Parameter
TYPE
Parameter templat yang menentukan jenis elemen dalam daftar.
Tampilkan Nilai
Elemen sebelumnya di kepala daftar.
Keterangan
Anda harus memastikan bahwa daftar tidak kosong sebelum memanggil RemoveHead
. Jika daftar kosong, maka versi Debug dari Microsoft Foundation Class Library menegaskan. Gunakan IsEmpty
untuk memverifikasi bahwa daftar berisi elemen.
Contoh
// Define myList.
CList<CString, CString&> myList;
// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));
// Remove the head element and verify the list.
// NOTE: once the head is removed, the number of
// elements in the list will be one.
CString strHead = myList.RemoveHead();
ASSERT((CString(_T("123")) == strHead) && (myList.GetCount() == 1) &&
(CString(_T("ABC")) == myList.GetHead()));
CList::RemoveTail
Menghapus elemen dari ekor daftar dan mengembalikan penunjuk ke dalamnya.
TYPE RemoveTail();
Parameter
TYPE
Parameter templat yang menentukan jenis elemen dalam daftar.
Tampilkan Nilai
Elemen yang ada di ekor daftar.
Keterangan
Anda harus memastikan bahwa daftar tidak kosong sebelum memanggil RemoveTail
. Jika daftar kosong, maka versi Debug dari Microsoft Foundation Class Library menegaskan. Gunakan IsEmpty
untuk memverifikasi bahwa daftar berisi elemen.
Contoh
// Define myList.
CList<CString, CString &> myList;
// Add two elements to the list.
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Remove the tail element and verify the list.
// NOTE: once the tail is removed, the number of
// elements in the list will be one.
CString strTail = myList.RemoveTail();
ASSERT((CString(_T("123")) == strTail) && (myList.GetCount() == 1) &&
(CString(_T("ABC")) == myList.GetTail()));
CList::SetAt
Variabel jenis POSITION
adalah kunci untuk daftar.
void SetAt(POSITION pos, ARG_TYPE newElement);
Parameter
pos
Elemen POSITION
yang akan diatur.
ARG_TYPE
Parameter templat yang menentukan jenis elemen daftar (dapat menjadi referensi).
newElement
Elemen yang akan ditambahkan ke daftar.
Keterangan
Ini tidak sama dengan indeks, dan Anda tidak dapat beroperasi pada POSITION
nilai sendiri. SetAt
menulis elemen ke posisi yang ditentukan dalam daftar.
Anda harus memastikan bahwa nilai Anda POSITION
mewakili posisi yang valid dalam daftar. Jika tidak valid, maka versi Debug dari Microsoft Foundation Class Library menegaskan.
Contoh
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Replace CString("ABC") with CString("CBA")
POSITION pos = myList.Find(CString(_T("ABC")));
myList.SetAt(pos, CString(_T("CBA")));
// Verify CString("ABC") is not in the list.
ASSERT(myList.Find(CString(_T("ABC"))) == NULL);
Lihat juga
Sampel MFC COLLECT
CObject
Kelas
Bagan Hierarki
CMap
Kelas
CArray
Kelas