Memadamkan Elemen dengan Nilai Khusus daripada stl Vector
Vektor STL ialah bekas popular dalam C , tetapi API mereka tidak mempunyai kaedah untuk mengalih keluar elemen berasaskan pada nilai mereka. Ini menimbulkan persoalan:
Bagaimanakah item boleh dialih keluar daripada vektor stl berdasarkan nilainya?
Walaupun tiada kaedah khusus dalam kelas vektor, terdapat penyelesaian menggunakan fungsi perpustakaan standard.
Penyelesaian:
Gunakan fungsi std::remove, yang tidak mengalih keluar unsur secara langsung daripada bekas tetapi menyusun semulanya . Ia mengalihkan elemen yang tidak sepatutnya dialih keluar ke permulaan bekas dan mengembalikan iterator yang menunjuk ke elemen seterusnya selepasnya.
Untuk melengkapkan proses pengalihan keluar, hantar lelaran ini ke container_type::erase, yang sebenarnya mengalih keluar elemen tambahan kini terletak di hujung bekas. Berikut ialah contoh:
std::vector<int> vec; // Populate the vector... int int_to_remove = n; vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());
Kod ini mula-mula menggunakan std::remove untuk mengenal pasti dan mengalihkan elemen yang tidak akan dialih keluar ke permulaan vektor. Kemudian, vec.erase digunakan untuk mengalih keluar elemen tambahan ini secara kekal daripada bekas.
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Elemen dengan Nilai Tertentu daripada Vektor STL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!