http://www.sgi.com/tech/stl/StrictWeakOrdering.html
最主要的就是,保证自己的compare函数,满足下面的条件
Irreflexivity | f(x, x) must be false. |
Antisymmetry | f(x, y) implies !f(y, x) |
Transitivity | f(x, y) and f(y, z) imply f(x, z). |
Transitivity of equivalence | Equivalence (as defined above) is transitive: if x is equivalent to y and y is equivalent to z, then x is equivalent to z. (This implies that equivalence does in fact satisfy the mathematical definition of an equivalence relation.) |
简单的就是 a=b, return false
如果a < b 那么b < a 一定是false,
在library文档中提及到定义的函数必须是 strict wak ordering 。网上找的,就是下面的意思
Strict: pred (X, X) is always false.
Weak: If ! pred (X, Y) && !pred (Y, X), X==Y.
Ordering: If pred (X, Y) && pred (Y, Z), then pred (X, Z).