📄 strictweakordering.html
字号:
<HTML><!-- -- Copyright (c) 1996-1999 -- Silicon Graphics Computer Systems, Inc. -- -- Permission to use, copy, modify, distribute and sell this software -- and its documentation for any purpose is hereby granted without fee, -- provided that the above copyright notice appears in all copies and -- that both that copyright notice and this permission notice appear -- in supporting documentation. Silicon Graphics makes no -- representations about the suitability of this software for any -- purpose. It is provided "as is" without express or implied warranty. -- -- Copyright (c) 1994 -- Hewlett-Packard Company -- -- Permission to use, copy, modify, distribute and sell this software -- and its documentation for any purpose is hereby granted without fee, -- provided that the above copyright notice appears in all copies and -- that both that copyright notice and this permission notice appear -- in supporting documentation. Hewlett-Packard Company makes no -- representations about the suitability of this software for any -- purpose. It is provided "as is" without express or implied warranty. -- --><Head><Title>Strict Weak Ordering</Title><!-- Generated by htmldoc --></HEAD><BODY TEXT="#000000" LINK="#006600" ALINK="#003300" VLINK="#7C7F87" BGCOLOR="#FFFFFF"><A HREF="/"><IMG SRC="/images/common/sgilogo_small.gif" ALT="SGI Logo" WIDTH="80" HEIGHT="72" BORDER="0"></A><P><!--end header--><BR Clear><H1>Strict Weak Ordering</H1><Table CellPadding=0 CellSpacing=0 width=100%><TR><TD Align=left><Img src = "functors.gif" Alt="" WIDTH = "194" HEIGHT = "38" ></TD><TD Align=right><Img src = "concept.gif" Alt="" WIDTH = "194" HEIGHT = "38" ></TD></TR><TR><TD Align=left VAlign=top><b>Category</b>: functors</TD><TD Align=right VAlign=top><b>Component type</b>: concept</TD></TR></Table><h3>Description</h3>A Strict Weak Ordering is a <A href="BinaryPredicate.html">Binary Predicate</A> that compares twoobjects, returning <tt>true</tt> if the first precedes the second. Thispredicate must satisfy the standard mathematical definition ofa <i>strict weak ordering</i>. The precise requirements are statedbelow, but what they roughly mean is that a Strict Weak Ordering hasto behave the way that "less than" behaves: if <tt>a</tt> is less than <tt>b</tt>then <tt>b</tt> is not less than <tt>a</tt>, if <tt>a</tt> is less than <tt>b</tt> and <tt>b</tt> is lessthan <tt>c</tt> then <tt>a</tt> is less than <tt>c</tt>, and so on.<h3>Refinement of</h3><A href="BinaryPredicate.html">Binary Predicate</A><h3>Associated types</h3><Table border><TR><TD VAlign=top>First argument type</TD><TD VAlign=top>The type of the Strict Weak Ordering's first argument.</TD></TR><TR><TD VAlign=top>Second argument type</TD><TD VAlign=top>The type of the Strict Weak Ordering's second argument. The first argument type and second argument type must be the same.</TD></TR><TR><TD VAlign=top>Result type</TD><TD VAlign=top>The type returned when the Strict Weak Ordering is called. The result type must be convertible to <tt>bool</tt>. </TD></tr></table><h3>Notation</h3><Table><TR><TD VAlign=top><tt>F</tt></TD><TD VAlign=top>A type that is a model of Strict Weak Ordering</TD></TR><TR><TD VAlign=top><tt>X</tt></TD><TD VAlign=top>The type of Strict Weak Ordering's arguments.</TD></TR><TR><TD VAlign=top><tt>f</tt></TD><TD VAlign=top>Object of type <tt>F</tt></TD></TR><TR><TD VAlign=top><tt>x</tt>, <tt>y</tt>, <tt>z</tt></TD><TD VAlign=top>Object of type <tt>X</tt></TD></tr></table><h3>Definitions</h3><UL><LI>Two objects <tt>x</tt> and <tt>y</tt> are <i>equivalent</i> if both <tt>f(x, y)</tt> and <tt>f(y, x)</tt> are false. Note that an object is always (by the irreflexivity invariant) equivalent to itself.</UL><h3>Valid expressions</h3>None, except for those defined in the <A href="BinaryPredicate.html">Binary Predicate</A> requirements.<h3>Expression semantics</h3><Table border><TR><TH>Name</TH><TH>Expression</TH><TH>Precondition</TH><TH>Semantics</TH><TH>Postcondition</TH></TR><TR><TD VAlign=top>Function call</TD><TD VAlign=top><tt>f(x, y)</tt></TD><TD VAlign=top>The ordered pair <tt>(x,y)</tt> is in the domain of <tt>f</tt></TD><TD VAlign=top>Returns <tt>true</tt> if <tt>x</tt> precedes <tt>y</tt>, and <tt>false</tt> otherwise</TD><TD VAlign=top>The result is either <tt>true</tt> or <tt>false</tt></TD></tr></table><h3>Complexity guarantees</h3><h3>Invariants</h3><Table border><TR><TD VAlign=top>Irreflexivity</TD><TD VAlign=top><tt>f(x, x)</tt> must be <tt>false</tt>.</TD></TR><TR><TD VAlign=top>Antisymmetry</TD><TD VAlign=top><tt>f(x, y)</tt> implies <tt>!f(y, x)</tt></TD></TR><TR><TD VAlign=top>Transitivity</TD><TD VAlign=top><tt>f(x, y)</tt> and <tt>f(y, z)</tt> imply <tt>f(x, z)</tt>.</TD></TR><TR><TD VAlign=top>Transitivity of equivalence</TD><TD VAlign=top>Equivalence (as defined above) is transitive: if <tt>x</tt> is equivalent to <tt>y</tt> and <tt>y</tt> is equivalent to <tt>z</tt>, then <tt>x</tt> is equivalent to <tt>z</tt>. (This implies that equivalence does in fact satisfy the mathematical definition of an equivalence relation.) <A href="#1">[1]</A></TD></tr></table><h3>Models</h3><UL><LI><tt><A href="less.html">less</A><int></tt><LI><tt><A href="less.html">less</A><double></tt><LI><tt><A href="greater.html">greater</A><int></tt><LI><tt><A href="greater.html">greater</A><double></tt></UL><h3>Notes</h3><P><A name="1">[1]</A>The first three axioms, irreflexivity, antisymmetry, andtransitivity, are the definition of a <i>partial ordering</i>; transitivity of equivalence is required by the definition of a<i>strict weak ordering</i>. A <i>total ordering</i> is one that satisfiesan even stronger condition: equivalence must be the same as equality.<h3>See also</h3><A href="LessThanComparable.html">LessThan Comparable</A>, <tt><A href="less.html">less</A></tt>, <A href="BinaryPredicate.html">Binary Predicate</A>, <A href="functors.html">function objects</A><!-- start footer --><!-- Footer Begins --><STYLE TYPE="text/css"><!--TD.footer, TD.footer A{ font-family: Arial, helvetica, sans-serif; font-size: 8pt;}A.home {font-family: Arial, helvetica, sans-serif;}--></STYLE><P><A CLASS="home" HREF="index.html">STL Home</A><P><TABLE WIDTH="600" CELLPADDING="0" CELLPADDING="0" BORDER="0"> <TR> <TD ALIGN="RIGHT" CLASS="footer"><A HREF="/company_info/terms.html" TARGET="_top">terms of use</A> | <A HREF="/company_info/privacy.html" TARGET="_top">privacy policy</A></TD> <TD ALIGN="CENTER" CLASS="footer"> | </TD> <TD ALIGN="LEFT" CLASS="footer"><A HREF="/cgi-bin/feedback/" TARGET="_top">contact us</A></TD> </TR><TR> <TD ALIGN="RIGHT" CLASS="footer">Copyright © 1993-2003 Silicon Graphics, Inc. All rights reserved.</TD> <TD ALIGN="CENTER" CLASS="footer"> | </TD> <TD ALIGN="LEFT" CLASS="footer"><A HREF="/company_info/trademarks/" TARGET="_top">Trademark Information</A></TD> </TR></TABLE><!-- Footer Ends --><!-- end footer --><P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -