Penyingkiran Nilai Cekap daripada Vektor STL
Walaupun fungsi meluas yang disediakan oleh kelas vektor STL, ia tidak mempunyai fungsi eksplisit untuk menghapuskan elemen berasaskan pada nilai mereka. Operasi ini, walau bagaimanapun, biasa ditemui.
Penyelesaian: Menggunakan std::remove
STL menawarkan fungsi std::remove, yang tidak mengalih keluar elemen secara eksplisit tetapi memindahkan elemen untuk dikekalkan ke permulaan bekas. Ia mengembalikan iterator yang menunjuk melepasi elemen yang dikekalkan ini:
auto new_end = std::remove(vec.begin(), vec.end(), int_to_remove);
Untuk melengkapkan pengalihan keluar, kita boleh menggunakan vec.erase untuk menghapuskan lebihan elemen yang kini terletak di hujung:
vec.erase(new_end, vec.end());
Pendekatan ini secara berkesan membersihkan elemen dengan nilai sasaran sambil mengekalkan struktur bersebelahan vektor.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Elemen dengan Cekap mengikut Nilai daripada Vektor STL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!