Bagaimanakah Saya Boleh Mengalih Keluar Elemen daripada Vektor C Berdasarkan Nilainya, Bukan Kedudukannya?

Patricia Arquette
Lepaskan: 2024-11-11 01:40:03
asal
893 orang telah melayarinya

How Can I Remove Elements from a C   Vector Based on Their Value, Not Position?

Mengalih keluar Elemen Vektor Mengikut Nilai, Bukan Kedudukan

Dalam C , apabila berurusan dengan vektor, adalah perkara biasa untuk mengalih keluar elemen menggunakan kedudukannya dalam vektor. Sebagai contoh, myVector.erase(myVector.begin() 4) mengalih keluar elemen keempat.

Walau bagaimanapun, mungkin ada kalanya lebih mudah untuk mengalih keluar elemen berdasarkan nilainya dan bukannya kedudukan. Untuk mencapai matlamat ini, kita boleh memanfaatkan kuasa algoritma std::remove().

Algoritma std::remove()

Algoritma std::remove() adalah kuat alat yang boleh digunakan untuk mengalih keluar elemen tertentu daripada julat iterator. Sintaksnya adalah seperti berikut:

template <typename ForwardIterator, typename T>
ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& value);
Salin selepas log masuk

di mana:

  • pertama dan terakhir ialah iterator yang mewakili julat elemen untuk mencari nilai.
  • nilai ialah nilai untuk dialih keluar daripada julat.

Contoh Penggunaan

Untuk mengalih keluar semua elemen dengan nilai "8" daripada vektor kami, kami boleh menggunakan kod berikut:

#include <algorithm>
...
vec.erase(std::remove(vec.begin(), vec.end(), 8), vec.end());
Salin selepas log masuk

Gabungan std::remove() dan erase() ini biasanya dirujuk sebagai idiom erase-remove. Ia merupakan cara yang cekap dan mudah untuk mengalih keluar elemen mengikut nilai daripada vektor.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Elemen daripada Vektor C Berdasarkan Nilainya, Bukan Kedudukannya?. 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