¿El operador mayor > satisface la ordenación débil estricta?

¿El operador mayor > satisface la ordenación débil estricta?

Incluso si el estándar se refiere a "menor que" para Compare arbitrario funciones, que solo implica "menor que" en el contexto del pedido .

Si defino una ordenación por función de comparación [](int a, int b) { return a > b; } , entonces un elemento es "menor que" otro en este orden si su valor entero es mayor. Eso es porque el orden que he creado es un orden de los números enteros en orden inverso . No deberías leer < como "menor que" en los pedidos. Deberías leerlo como "viene antes".

Siempre que x < y es un orden débil estricto entonces x > y es también un ordenamiento débil estricto, solo que con el orden inverso.


La relación matemática estricta mayor que es una ordenación débil estricta.

En cuanto al operador en lenguaje C++:Para todos los tipos de enteros:Sí. En general:No, pero en la mayoría de los casos sí. Lo mismo se aplica al operador estricto menor que.

En cuanto a la cita confusa, "es menor que" en ese contexto tiene la intención de transmitir eso significa que el resultado final de la operación de clasificación es una secuencia no decreciente, es decir, los objetos son "menores" o iguales a los objetos después de ellos. Si std::greater se utiliza como objeto de comparación, los valores mayores son "menores" en orden.

Esto puede resultar confuso, pero no pretende excluir el operador estricto mayor que.

Algunos ejemplos:

  • Operadores sobrecargados que no cumplen las propiedades.
  • > El operador en punteros que no apuntan a la misma matriz tiene un resultado no especificado.
  • > no satisface el requisito de irreflexividad para los tipos de coma flotante en la representación IEEE-754 a menos que los NaN se excluyan del dominio.