IRIX 6.5 » Books » Developer »
Standard Template Library Programmer's Guide
(document number: 007-3426-004 / published: 1999-05-21)
table of contents | additional info | download
find in page
LessThan Comparable
 |
 |
| Category: utilities |
Component type: concept |
Description
A type is LessThanComparable if it is ordered: it must
be possible to compare two objects of that type using
operator<, and
operator< must be a partial ordering.
Refinement of
Associated types
Notation
|
X
|
A type that is a model of LessThanComparable
|
|
x, y, z
|
Object of type X
|
Definitions
Consider the relation
!(x < y) && !(y < x). If this relation is
transitive (that is, if
!(x < y) && !(y < x) && !(y < z) && !(z < y)
implies
!(x < z) && !(z < x)), then it satisfies the mathematical
definition of an equivalence relation. In this case,
operator<
is a
strict weak ordering.
If operator< is a strict weak ordering, and if each equivalence class
has only a single element, then operator< is a total ordering.
Valid expressions
|
Name
|
Expression
|
Type requirements
|
Return type
|
|
Less
|
x < y
|
|
Convertible to bool
|
|
Greater
|
x > y
|
|
Convertible to bool
|
|
Less or equal
|
x <= y
|
|
Convertible to bool
|
|
Greater or equal
|
x >= y
|
|
Convertible to bool
|
Expression semantics
|
Name
|
Expression
|
Precondition
|
Semantics
|
Postcondition
|
|
Less
|
x < y
|
x and y are in the domain of <
|
|
|
|
Greater
|
x > y
|
x and y are in the domain of <
|
Equivalent to y < x [1]
|
|
|
Less or equal
|
x <= y
|
x and y are in the domain of <
|
Equivalent to !(y < x) [1]
|
|
|
Greater or equal
|
x >= y
|
x and y are in the domain of <
|
Equivalent to !(x < y) [1]
|
|
Complexity guarantees
Invariants
|
Irreflexivity
|
x < x must be false.
|
|
Antisymmetry
|
x < y implies !(y < x) [2]
|
|
Transitivity
|
x < y and y < z implies x < z [3]
|
Models
Notes
[1]
Only operator< is fundamental; the other inequality operators
are essentially syntactic sugar.
[2]
Antisymmetry is a theorem, not an axiom: it follows from
irreflexivity and transitivity.
[3]
Because of irreflexivity and transitivity, operator< always
satisfies the definition of a partial ordering. The definition of
a strict weak ordering is stricter, and the definition of a
total ordering is stricter still.
See also
EqualityComparable,
StrictWeakOrdering
Copyright ©
1999 Silicon Graphics, Inc. All Rights Reserved.
TrademarkInformation
Standard Template Library Programmer's Guide
(document number: 007-3426-004 / published: 1999-05-21)
table of contents | additional info | download
home/search |
what's new |
help