L'importance des comparateurs transparents
C 14 introduit une distinction connue sous le nom de « comparateurs transparents » au sein des conteneurs associatifs. Cet article explore le but et les implications de ce concept.
Justification des comparateurs transparents
Le problème présenté dans les réponses de Dietmar et Remyabel met en évidence les limites des conteneurs associatifs antérieurs. Ils ne pouvaient pas effectuer certaines opérations (par exemple, rechercher, compter) avec des types qui ne sont pas directement comparables au type de clé du conteneur. Les comparateurs transparents résolvent ce problème en permettant l'utilisation d'un type qui peut comparer avec la clé du conteneur.
Comportement et compatibilité par défaut
Les comparateurs transparents n'affectent pas le comportement par défaut de conteneurs standards. L'ajout de surcharges de comparateur transparent vous permet de les utiliser en option pour une flexibilité accrue. Par défaut, les conteneurs fonctionnent toujours comme avant, en maintenant une compatibilité ascendante.
Utilisation du foncteur transparent
Pour utiliser des comparateurs transparents, utilisez simplement un « foncteur transparent » comme std : :less<>, qui accepte tous les types d’arguments. Cela permet des opérations de recherche hétérogènes.
Justification du nom
Le terme « comparateur transparent » provient du concept d'« opérateurs diamant » introduit dans le N3421 de la STL. Les foncteurs transparents, essentiels à la fonctionnalité de recherche hétérogène des conteneurs associatifs, transmettent leurs arguments à un autre opérateur. Ils ressemblent à des diamants dans leur capacité à relier différents types d'arguments, d'où le nom de « comparateur transparent ».
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!