Определение :
Пусть <
будет бинарным отношением, где a < b
означает "a
меньше b
".
Пусть >
будет бинарным отношением, где a > b
означает "a
больше b
".
Итак, мы предполагаем <
и >
имеют значения, которые мы обычно используем в повседневной жизни. Хотя в некоторых языках программирования (например, C ++) мы можем перегружать их, чтобы дать им разные определения, в дальнейшем мы не думаем об этом.
Context :
Поскольку я читаю математическое определение строгого слабого порядка (например, Википедия ), я думаю, что и <
, и >
удовлетворяют его. Однако все примеры, которые я видел на многих сайтах, относятся только к <
. Существует даже веб-сайт , на котором написано
, что примерно означает, что строгий слабый порядок должен вести себя так, как ведет себя «меньше, чем»: если a меньше, чем bтогда b не меньше, чем a, если a меньше, чем b, и b меньше, чем c, тогда a меньше, чем c, и так далее.
Кроме того, в N4140 (международный стандарт C ++ 14) строгое слабое упорядочение определяется как
(§25.4-4) Если мы определяем equiv(a, b)
как !comp(a, b) && !comp(b, a)
, то требования состоят в том, чтобы comp
и equiv
оба были транзитивными отношениями
, где comp
определяется как
(§25.4-2) Compare
- это тип объекта функции (20.9). Возвращаемое значение операции вызова функции, примененной к объекту типа Compare
, при контекстном преобразовании в bool
(пункт 4), дает true
, если первый аргумент вызова меньше второй и false
в противном случае. Compare comp
используется повсеместно для алгоритмов, предполагающих отношение порядка.
Вопрос :
Соответствует ли ">" строгому слабому порядку? Я ожидаю, но не уверен.