Menjadikan Jenis Tersuai Serasi dengan Berasaskan Julat untuk Gelung
Untuk mendayakan penggunaan berdasarkan julat untuk gelung dengan jenis data tersuai, anda mempunyai dua pilihan utama:
Pertimbangan Ruang Nama:
Jika jenis tersuai anda berada dalam ruang nama, seperti xml, anda mesti mengisytiharkan begin() dan end() berfungsi dalam ruang nama itu juga. Tiada keperluan untuk menentukan sama ada xml::begin() atau std::begin().
Keperluan Kaedah:
Nilai mula/akhir kembali bukan diperlukan untuk menjadi iterator sebenar. Walau bagaimanapun, mereka mesti mematuhi keperluan khusus:
Berasaskan Julat untuk Peluasan Gelung:
Berasaskan julat untuk sintaks gelung, untuk (range_declaration : range_expression), berkembang kepada pseudokod berikut:
{ auto &range = range_expression; for (auto begin = begin_expr, end = end_expr; begin != end; ++begin) { range_declaration = *begin; loop_statement } }
C 17 Decoupled End Jenis:
Dalam C 17, pseudokod dikembangkan gelung berasaskan julat ditukar kepada:
{ auto &range = range_expression; auto begin = begin_expr; auto end = end_expr; for (; begin != end; ++begin) { range_declaration = *begin; loop_statement } }
Perubahan ini membenarkan jenis lelaran akhir berbeza daripada jenis lelaran permulaan. Ia membolehkan penggunaan iterator "sentinel" yang hanya menyokong perbandingan ketidaksamaan dengan jenis iterator mula.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuat Jenis Tersuai Saya Berfungsi dengan Berasaskan Julat untuk Gelung dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!