Namensräume
Varianten
Aktionen

std::strict_weak_order

Von cppreference.com
< cpp‎ | concepts
 
 
 
Definiert in der Header-Datei <concepts>
template< class R, class T, class U >
concept strict_weak_order = std::relation<R, T, U>;
(seit C++20)

Das Konzept strict_weak_order<R, T, U> spezifiziert, dass die relation R eine strikte schwache Ordnung auf ihren Argumenten auferlegt.

Inhalt

[edit] Semantische Anforderungen

Eine Relation r ist eine strikte schwache Ordnung, wenn sie

  • irreflexiv ist: für alle x gilt r(x, x) ist false;
  • transitiv ist: für alle a, b und c gilt: wenn r(a, b) und r(b, c) beide true sind, dann ist r(a, c) true;
  • sei e(a, b) !r(a, b) && !r(b, a), dann ist e transitiv: e(a, b) && e(b, c) impliziert e(a, c).

Unter diesen Bedingungen kann gezeigt werden, dass e eine Äquivalenzrelation ist und r eine strikte Totalordnung auf den durch e bestimmten Äquivalenzklassen induziert.

[edit] Anmerkungen

Der Unterschied zwischen relation und strict_weak_order ist rein semantisch.

[edit] Referenzen

  • C++23 Standard (ISO/IEC 14882:2024)
  • 18.7.7 Konzept strict_weak_order [concept.strictweakorder]
  • C++20 Standard (ISO/IEC 14882:2020)
  • 18.7.7 Konzept strict_weak_order [concept.strictweakorder]

[edit] Siehe auch