Setara dengan Alih Keluar-Jika untuk Peta Standard
Soalan:
Dalam C , bagaimana bolehkah saya mengalih keluar julat elemen dari peta berdasarkan keadaan tertentu menggunakan STL algoritma?
Jawapan:
Walaupun algoritma remove_if tidak boleh digunakan untuk bekas bersekutu seperti peta, terdapat pendekatan yang setara menggunakan iterator. Begini cara anda boleh melakukannya:
bool predicate(const std::pair<int, std::string>& x) { return x.first > 2; } int main() { std::map<int, std::string> aMap; // Populate the map... std::map<int, std::string>::iterator iter = aMap.begin(); std::map<int, std::string>::iterator endIter = aMap.end(); for (; iter != endIter;) { if (predicate(*iter)) { // Here, increment iter after erasing iter = aMap.erase(iter); } else { ++iter; } } }
Penjelasan:
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Elemen daripada Peta Standard C Berdasarkan Keadaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!