Memadamkan Elemen daripada Vektor STL mengikut Nilai
Apabila bekerja dengan vektor STL, mengalih keluar elemen mengikut nilainya mungkin kelihatan sebagai asas operasi, namun nampaknya tiada kaedah mudah dalam kelas vektor itu sendiri.
Std::remove fungsi menyediakan penyelesaian untuk tugas biasa ini. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa std::remove tidak secara langsung mengalih keluar elemen daripada bekas. Sebaliknya, ia meletakkan semula elemen yang memenuhi syarat tertentu pada permulaan bekas. Untuk melengkapkan proses pengalihan keluar, bekas yang diubah suai ini mesti dihantar ke container_type::erase untuk mengalih keluar elemen berlebihan yang kini terletak di hujung.
Pertimbangkan contoh berikut:
std::vector<int> vec; // .. populate vec .. int int_to_remove = n; vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());
Dalam ini contoh, std::remove repositions semua elemen tidak sama dengan int_to_remove ke permulaan vektor, dan mengembalikan iterator yang menunjuk ke yang pertama unsur selepas unsur-unsur ini. Iterator ini kemudiannya digunakan sebagai hujah untuk std::erase(), dengan berkesan mengalih keluar elemen yang tinggal di hujung vektor.
Atas ialah kandungan terperinci Bagaimanakah Saya Mengeluarkan Elemen Mengikut Nilai dengan Cekap daripada Vektor STL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!