命名空间
变体
操作

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>;
(since C++20)

概念 strict_weak_order 指定关系 R 对其参数施加 严格弱序。

内容

[编辑] 语义要求

关系 r 是严格弱序,如果

  • 它是非自反的:对于所有 xr(x, x)false
  • 它是传递的:对于所有 abc,如果 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]

[编辑] 参见