Rumah >pembangunan bahagian belakang >C++ >Sekiranya Anda Menggunakan `std::distance` atau Penolakan Iterator untuk Lelaran Berindeks?
Faedah std::jarak Melebihi Pengulangan Tolak untuk Lelaran Berindeks
Pertimbangkan senario berikut: lelaran melalui vektor dan memerlukan indeks elemen semasa yang ditunjuk oleh iterator. Dua kaedah biasa yang digunakan untuk tujuan ini ialah:
Walaupun kedua-dua pendekatan memberikan hasil yang betul, ia berbeza dalam aspek tertentu.
Kebaikan dan Keburukan daripadanya - vec.begin():
Kebaikan dan Keburukan std::distance(vec.begin(), it):
Dalam senario di mana vektor dijangka kekal tidak berubah semasa lelaran, ia - vec.begin() boleh digunakan untuk kesederhanaan. Walau bagaimanapun, jika terdapat kemungkinan vektor diubah suai, adalah dinasihatkan untuk menggunakan std::distance(vec.begin(), it) untuk memastikan ketepatan dan mengelakkan masalah prestasi.
Perhatikan bahawa ia adalah nama biasa untuk iterator bekas (cth., std::container_type::iterator it;), dan penggunaannya hendaklah mematuhi garis panduan yang disediakan.
Atas ialah kandungan terperinci Sekiranya Anda Menggunakan `std::distance` atau Penolakan Iterator untuk Lelaran Berindeks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!