std::strict_weak_order
来自 cppreference.cn
定义于头文件 <concepts> |
||
template< class R, class T, class U > concept strict_weak_order = std::relation<R, T, U>; |
(since C++20) | |
概念 strict_weak_order
内容 |
[编辑] 语义要求
关系 r 是严格弱序,如果
- 它是非自反的:对于所有 x,r(x, x) 为 false;
- 它是传递的:对于所有 a、b 和 c,如果 r(a, b) 和 r(b, c) 都为 true,则 r(a, c) 为 true;
- 令 e(a, b) 为 !r(a, b) && !r(b, a),则 e 是传递的:e(a, b) && e(b, c) 蕴涵 e(a, c)。
在这些条件下,可以证明 e 是一个等价关系,并且 r 在由 e 确定的等价类上诱导一个严格全序。
[编辑] 备注
relation 和 strict_weak_order 之间的区别纯粹是语义上的。
[编辑] 参考
- C++23 标准 (ISO/IEC 14882:2024)
- 18.7.7 概念 strict_weak_order [concept.strictweakorder]
- C++20 标准 (ISO/IEC 14882:2020)
- 18.7.7 概念 strict_weak_order [concept.strictweakorder]