Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengalih keluar Elemen dengan Nilai Tertentu daripada Vektor STL?

Bagaimana untuk mengalih keluar Elemen dengan Nilai Tertentu daripada Vektor STL?

Patricia Arquette
Patricia Arquetteasal
2024-11-21 05:57:09895semak imbas

How to Remove Elements with a Specific Value from an STL Vector?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn