Namespaces
Variants

std:: equivalence_relation

From cppreference.net
定义于头文件 <concepts>
template < class R, class T, class U >
concept equivalence_relation = std:: relation < R, T, U > ;
(C++20 起)

概念 equivalence_relation<R, T, U> 规定 relation R 在其参数上施加了一个 等价关系

语义要求

关系 r 是等价关系当且仅当

  • 它是自反的:对于所有 x r(x, x) true
  • 它是对称的:对于所有 a b ,当且仅当 r(b, a) true 时, r(a, b) 才为 true
  • 它是传递的: r(a, b) && r(b, c) 意味着 r(a, c)

注释

relation equivalence_relation 之间的区别纯粹是语义上的。

参考文献

  • C++23 标准 (ISO/IEC 14882:2024):
  • 18.7.6 概念 equivalence_relation [concept.equiv]
  • C++20 标准 (ISO/IEC 14882:2020):
  • 18.7.6 概念 equivalence_relation [concept.equiv]