Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara menghapuskan elemen dari senarai generik dengan selamat semasa meleleh?
Semasa proses berulang, elemen senarai generik dengan selamat dikeluarkan
Dalam banyak senario pengaturcaraan, unsur -unsur dalam senarai perlu diproses. Walau bagaimanapun, jika unsur -unsur tertentu perlu dikeluarkan semasa proses ini, kaedah standard mungkin mempunyai masalah.
Penggunaan
dalam kitaran akan menyebabkan keabnormalan, dan kaunter penurunan dan penggunaan akan memusnahkan kedudukan set semasa. foreach
.Remove(element)
Penyelesaian yang lebih elegan ialah senarai lelaran terbalik: .RemoveAt(i)
Ini memastikan bahawa elemen penyingkiran tidak menjejaskan kedudukan semasa dalam senarai.
<code class="language-csharp">for (int i = safePendingList.Count - 1; i >= 0; i--) { // 处理元素 // 如需移除元素 // safePendingList.RemoveAt(i); }</code>atau, kaedah membolehkan penapisan elemen mengikut predikat:
Contoh berikut menunjukkan penggunaan kaedah kitaran RemoveAll
:
<code class="language-csharp">safePendingList.RemoveAll(item => item.Value == someValue);</code>
output:
for
Atas ialah kandungan terperinci Bagaimana cara menghapuskan elemen dari senarai generik dengan selamat semasa meleleh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!