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() 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);
di mana:
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());
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!