Dalam situasi di mana perlu mengalih keluar julat elemen tertentu daripada peta berdasarkan keadaan tertentu , algoritma setara "remove_if" dicari. Walau bagaimanapun, remove_if STL tidak boleh digunakan secara langsung pada bekas bersekutu seperti peta.
Untuk mencapai kefungsian ini, pendekatan alternatif adalah untuk melelaran melalui peta sambil menggunakan syarat tersebut. Jika syarat dipenuhi, elemen yang sepadan dipadamkan. Walau bagaimanapun, pemadaman elemen dari dalam gelung boleh membatalkan lelaran.
Gelung diubah suai berikut menangani isu ini:
for(; iter != endIter; ) { if (predicate(*iter)) { iter = aMap.erase(iter); } else { ++iter; } }
Dengan menambah lelaran hanya apabila elemen tidak dipadamkan, gelung dengan betul mengendalikan ketidaksahihan iterator. Pendekatan ini memastikan julat elemen yang diingini dialih keluar dan ia selamat digunakan semasa melelaran melalui peta.
Atas ialah kandungan terperinci Bagaimana untuk Mengalih keluar Julat Elemen dengan Selamat dari Peta Berdasarkan Keadaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!