std::strict_weak_order
Von cppreference.com
| 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]
- 18.7.7 Konzept
- C++20 Standard (ISO/IEC 14882:2020)
- 18.7.7 Konzept
strict_weak_order[concept.strictweakorder]
- 18.7.7 Konzept