命名空间
变体
操作

std::strict_weak_order (自 C++20 起)

来自 cppreference.com
< 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 是严格弱排序,则

  • 它是自反的:对于所有 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 确定的等价类上诱导出严格的全序。

[编辑] 注释

relationstrict_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]

[编辑] 另请参阅