Rumah > pembangunan bahagian belakang > C++ > Bagaimana Menggunakan Idiom Padam-Alih Keluar dengan Betul untuk Mengalih Keluar Pasangan dalam Vektor Berdasarkan Elemen Pertama Tertentu?

Bagaimana Menggunakan Idiom Padam-Alih Keluar dengan Betul untuk Mengalih Keluar Pasangan dalam Vektor Berdasarkan Elemen Pertama Tertentu?

Patricia Arquette
Lepaskan: 2024-11-13 03:29:02
asal
948 orang telah melayarinya

How to Correctly Use the Erase-Remove Idiom for Removing Pairs in a Vector Based on a Specific First Element?

Menggunakan Idiom Padam-Alih Keluar dengan Bekas Berpasangan

Andaikan kita mempunyai vektor pasangan >, di mana elemen pertama menandakan nilai dan yang kedua arah enum. Untuk mengalih keluar pasangan tertentu berdasarkan elemen pertama mereka, simpulan bahasa padam-buang ialah pendekatan yang sesuai.

Walau bagaimanapun, seperti yang ditunjukkan dalam soalan, mengalih keluar pasangan dengan nilai pertama 4 menghasilkan tingkah laku yang tidak dijangka. Untuk membetulkannya, kami perlu menyediakan julat yang betul kepada fungsi std::erase.

Kod yang dipertingkatkan kelihatan seperti ini:

stopPoints.erase(std::remove_if(stopPoints.begin(),
                                stopPoints.end(),
                                [](const stopPointPair stopPoint) -> bool 
                                       { return stopPoint.first == 4; }), 
                 stopPoints.end());
Salin selepas log masuk

Inilah sebabnya ini berfungsi dengan betul:

  • std::remove_if: Fungsi ini mengambil julat (dari awal hingga akhir vektor) dan lambda predikat yang menyemak sama ada elemen pertama pasangan itu sama dengan 4. Ia menyusun semula unsur-unsur dalam vektor supaya semua pasangan padanan berada di penghujung.
  • Leter Dikembalikan: Hasil std::remove_if ialah lelaran yang menunjuk ke elemen pertama yang sepadan dengan predikat (iaitu, elemen pertama yang akan dialih keluar).
  • std::erase: Fungsi erase memadamkan julat bermula daripada iterator yang dikembalikan oleh std::remove_if hingga akhir vektor . Akibatnya, semua pasangan padanan dihapuskan.

Dengan menyatakan julat yang betul dalam panggilan std::erase, kami memastikan semua pasangan dengan nilai pertama yang ditentukan dialih keluar dengan berkesan.

Atas ialah kandungan terperinci Bagaimana Menggunakan Idiom Padam-Alih Keluar dengan Betul untuk Mengalih Keluar Pasangan dalam Vektor Berdasarkan Elemen Pertama Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan