Rumah >pembangunan bahagian belakang >C++ >Apakah Perbezaan Antara `std::remove` dan `std::erase` dalam C ?
Memahami Perbezaan antara Padam dan Alih Keluar
Algoritma std::remove direka untuk memindahkan elemen yang tidak dipadamkan ke hadapan bekas, bertindih elemen yang dipadamkan. Ini disebabkan oleh fleksibilitinya dalam bekerja dengan mana-mana pasangan lelaran ke hadapan, termasuk pasangan yang tidak boleh memadamkan elemen.
Membezakan Padam dan Alih Keluar
Padam mengalih keluar elemen yang dikenal pasti oleh std ::alih keluar. Ia mengurangkan saiz bekas dengan menghapuskan elemen yang dipadam. Sebaliknya, alih keluar tidak mengalih keluar elemen tetapi mengalihkan elemen tidak dipadam ke hadapan untuk menulis ganti yang dipadam.
Contoh dengan std::remove dan Vektor
Dalam kod ujian yang disediakan, vektor a mengandungi dua elemen: 1 dan 2. Menggunakan std::move on a mengalih keluar semua kejadian 1 dan mengalihkan 2 ke permulaan vektor. Walau bagaimanapun, saiz a kekal 2 kerana memori yang diduduki oleh elemen yang dipadam tidak dikeluarkan.
Contoh dengan std::remove dan Padam
Apabila std:: remove dan std::erase digunakan bersama, elemen yang dipadamkan dialih keluar dan saiz bekas dilaraskan untuk mencerminkan bilangan sebenar elemen.
Kesimpulan
std::remove boleh digunakan secara bebas untuk mengalihkan elemen yang tidak dipadamkan ke hadapan dalam bekas. Walau bagaimanapun, dalam kebanyakan kes, ia digunakan bersama dengan std::erase untuk mengalih keluar elemen yang dipadam dan mengemas kini saiz bekas.
Atas ialah kandungan terperinci Apakah Perbezaan Antara `std::remove` dan `std::erase` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!