Heim >Backend-Entwicklung >C++ >Wie verbessern transparente Komparatoren assoziative C 14-Container?
Die Bedeutung transparenter Komparatoren
C 14 führt eine Unterscheidung ein, die als „transparente Komparatoren“ innerhalb assoziativer Container bekannt ist. Dieser Artikel befasst sich mit dem Zweck und den Auswirkungen dieses Konzepts.
Begründung für transparente Komparatoren
Das in Dietmars und Remyabels Antworten dargestellte Problem verdeutlicht die Einschränkungen früherer assoziativer Container. Sie konnten bestimmte Vorgänge (z. B. Suchen, Zählen) nicht mit Typen ausführen, die nicht direkt mit dem Schlüsseltyp des Containers vergleichbar waren. Transparente Komparatoren beheben dieses Problem, indem sie die Verwendung eines Typs ermöglichen, der mit dem Schlüssel des Containers verglichen werden kann.
Standardverhalten und -kompatibilität
Transparente Komparatoren haben keinen Einfluss auf das Standardverhalten von Standardbehälter. Durch das Hinzufügen transparenter Komparatorüberladungen können Sie diese optional verwenden und so die Flexibilität erhöhen. Standardmäßig funktionieren die Container weiterhin wie zuvor und wahren die Abwärtskompatibilität.
Verwendung transparenter Funktoren
Um transparente Komparatoren zu verwenden, verwenden Sie einfach einen „transparenten Funktor“ wie std: :less<>, das alle Argumenttypen akzeptiert. Dies ermöglicht heterogene Suchoperationen.
Namensbegründung
Der Begriff „transparenter Komparator“ stammt aus dem Konzept der „Diamantoperatoren“, das in STLs N3421 eingeführt wurde. Transparente Funktoren, die für die heterogene Suchfunktion assoziativer Container unerlässlich sind, leiten ihre Argumente an einen anderen Operator weiter. Sie ähneln Diamanten in ihrer Fähigkeit, verschiedene Argumenttypen zu verbinden, daher der Name „transparenter Komparator“.
Das obige ist der detaillierte Inhalt vonWie verbessern transparente Komparatoren assoziative C 14-Container?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!