Namespaces
Variants

std:: strict_weak_order

From cppreference.net
헤더에 정의됨 <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 이 인수들에 대해 엄격한 약순서(strict weak ordering)를 부과함을 명시합니다.

목차

의미론적 요구사항

관계 r 은 다음 조건을 만족할 때 엄격한 약순서(strict weak ordering)입니다

  • 이는 비반사적(irreflexive)입니다: 모든 x 에 대해, r ( x, x ) false 입니다;
  • 이는 추이적(transitive)입니다: 모든 a , b c 에 대해, r ( a, b ) r ( b, c ) 가 모두 true 이면, r ( a, c ) true 입니다;
  • e ( a, b ) ! r ( a, b ) && ! r ( b, a ) 로 정의할 때, e 는 추이적(transitive)입니다: 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]

참고 항목