Bagaimana untuk Mengeluarkan Elemen dengan Cekap mengikut Nilai daripada Vektor STL?

Patricia Arquette
Lepaskan: 2024-11-18 00:11:02
asal
745 orang telah melayarinya

How to Efficiently Remove Elements by Value from an STL Vector?

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

Untuk melengkapkan pengalihan keluar, kita boleh menggunakan vec.erase untuk menghapuskan lebihan elemen yang kini terletak di hujung:

vec.erase(new_end, vec.end());
Salin selepas log masuk

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!

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