std::strict_weak_order
来自 cppreference.cn
< cpp | 概念 (concepts)
定义于头文件 <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 Concept
strict_weak_order
[concept.strictweakorder]
- 18.7.7 Concept
- C++20 标准 (ISO/IEC 14882:2020)
- 18.7.7 Concept
strict_weak_order
[concept.strictweakorder]
- 18.7.7 Concept