Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Patricia Arquetteasal
2024-11-13 03:29:02841semak imbas

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());

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:
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