std::strict_weak_order (自 C++20 起)
来自 cppreference.com
定义在头文件 <concepts> 中 |
||
template< class R, class T, class U > concept strict_weak_order = std::relation<R, T, U>; |
(自 C++20 起) | |
概念 strict_weak_order<R, T, U>
指定 relation
R
对其参数施加严格弱排序。
内容 |
[编辑] 语义要求
如果关系 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]
- 18.7.7 概念
- C++20 标准 (ISO/IEC 14882:2020)
- 18.7.7 概念
strict_weak_order
[concept.strictweakorder]
- 18.7.7 概念