Bagaimanakah Saya Mengeluarkan Elemen Mengikut Nilai dengan Cekap daripada Vektor STL?

Patricia Arquette
Lepaskan: 2024-11-22 12:44:15
asal
257 orang telah melayarinya

How Do I Efficiently Remove Elements by Value from an STL Vector?

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());
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan