名前空間
変種
操作

std::strict_weak_order

From cppreference.com
< cpp‎ | concepts
 
 
 
ヘッダ <concepts> で定義
template< class R, class T, class U >
concept strict_weak_order = std::relation<R, T, U>;
(C++20以降)

concept strict_weak_order<R, T, U> は、relation R がその引数に対して順序の厳密弱順序(strict weak ordering)を課すことを指定します。

目次

[編集] 意味的要件

関係 r が順序の厳密弱順序であるとは、以下の条件を満たす場合を指します。

  • 反射律をみたさない (irreflexive): すべての x について、r(x, x)false である。
  • 推移律をみたさない (transitive): すべての a, b, c について、もし r(a, b)r(b, c) が両方とも true ならば、r(a, c)true である。
  • !r(a, b) && !r(b, a)e(a, b) と定義すると、e は推移律をみたさない (e is transitive): e(a, b) && e(b, c)e(a, c) を意味する。

これらの条件の下で、e は同値関係であり、re によって決定される同値類に対して順序の厳密全順序(strict total ordering)を誘導することが示されます。

[編集] 注記

relationstrict_weak_order の違いは、純粋に意味的なものです。

[編集] 参考文献

  • C++23標準 (ISO/IEC 14882:2024)
  • 18.7.7 Concept strict_weak_order [concept.strictweakorder]
  • C++20 standard (ISO/IEC 14882:2020)
  • 18.7.7 Concept strict_weak_order [concept.strictweakorder]

[編集] 関連項目

English 日本語 中文(简体) 中文(繁體)