Membandingkan Iterator daripada Bekas Berbeza
Dalam C , adalah penting untuk memahami prinsip yang mengawal perbandingan lelaran apabila berurusan dengan bekas yang berbeza. Timbul persoalan: "Adakah boleh diterima untuk membandingkan iterator daripada bekas yang berbeza?"
Untuk menjawabnya, kami merujuk kepada standard C 11 (n3337):
Memandangkan RandomAccessIterator mewarisi keperluan ForwardIterator, ia berikutan bahawa membandingkan iterator daripada bekas yang berbeza adalah tingkah laku yang tidak ditentukan.
Isu LWG #446 secara khusus menangani isu ini dan mencadangkan pindaan berikut kepada standard:
"Hasil penilaian secara langsung atau tidak langsung mana-mana fungsi perbandingan atau perduaan - pengendali dengan dua nilai lelaran sebagai argumen yang diperoleh daripada dua julat berbeza r1 dan r2 tidak ditentukan, melainkan secara eksplisit diterangkan sebaliknya."
Pindaan ini menyerlahkan bahawa membandingkan lelaran daripada bekas yang berbeza, melainkan ia adalah subjulat daripada julat sepunya, adalah tingkah laku yang tidak ditentukan.
Atas ialah kandungan terperinci Bolehkah Iterator dari Bekas Berbeza Dibandingkan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!