Maison >développement back-end >C++ >Les itérateurs de différents conteneurs peuvent-ils être comparés en C ?
Comparaison des itérateurs de différents conteneurs
En C , il est important de comprendre les principes régissant la comparaison des itérateurs lorsqu'il s'agit de différents conteneurs. La question se pose : "Est-il acceptable de comparer des itérateurs de conteneurs distincts ?"
Pour y répondre, on se réfère à la norme C 11 (n3337) :
Étant donné que RandomAccessIterator hérite des exigences de ForwardIterator, il s'ensuit que comparer des itérateurs de différents conteneurs est un comportement non défini.
Le numéro LWG n° 446 aborde spécifiquement ce problème et propose l'amendement suivant à la norme :
"Le résultat de l'évaluation directe ou indirecte d'une fonction de comparaison ou de l'opérateur binaire avec deux valeurs d'itérateur comme arguments obtenus à partir de deux plages différentes r1 et r2 n'est pas défini, sauf si explicitement décrit autrement."
Cet amendement souligne que comparer des itérateurs de différents conteneurs, à moins qu'ils ne soient des sous-plages d'une plage commune, est un comportement indéfini.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!