2013-08-30 02:14:14 +00:00
2013-08-24 09:02:54 +00:00
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2013-08-30 02:14:14 +00:00
2013-08-24 09:02:54 +00:00
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
2013-08-30 02:14:14 +00:00
< title > tristate_lexicographical_compare — Sprout 1.0 documentation< / title >
2013-08-30 05:02:02 +00:00
< link rel = "stylesheet" href = "../../_static/sphinxdoc.css" type = "text/css" / >
< link rel = "stylesheet" href = "../../_static/pygments.css" type = "text/css" / >
2013-08-30 02:14:14 +00:00
2013-08-24 09:02:54 +00:00
< script type = "text/javascript" >
var DOCUMENTATION_OPTIONS = {
2013-08-30 05:02:02 +00:00
URL_ROOT: '../../',
2013-08-24 09:02:54 +00:00
VERSION: '1.0',
2013-08-30 02:14:14 +00:00
COLLAPSE_INDEX: false,
2013-08-24 09:02:54 +00:00
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
< / script >
2013-08-30 05:02:02 +00:00
< script type = "text/javascript" src = "../../_static/jquery.js" > < / script >
< script type = "text/javascript" src = "../../_static/underscore.js" > < / script >
< script type = "text/javascript" src = "../../_static/doctools.js" > < / script >
< link rel = "top" title = "Sprout 1.0 documentation" href = "../../index.html" / >
2013-08-24 09:02:54 +00:00
< link rel = "up" title = "Sprout.Algorithm" href = "index.html" / >
< link rel = "next" title = "clamp" href = "clamp.html" / >
< link rel = "prev" title = "lexicographical_compare" href = "lexicographical_compare.html" / >
< / head >
< body >
< div class = "related" >
< h3 > Navigation< / h3 >
< ul >
< li class = "right" style = "margin-right: 10px" >
2013-08-30 05:02:02 +00:00
< a href = "../../genindex.html" title = "General Index"
2013-08-24 09:02:54 +00:00
accesskey="I">index< / a > < / li >
< li class = "right" >
< a href = "clamp.html" title = "clamp"
accesskey="N">next< / a > |< / li >
< li class = "right" >
< a href = "lexicographical_compare.html" title = "lexicographical_compare"
accesskey="P">previous< / a > |< / li >
2013-08-30 05:02:02 +00:00
< li > < a href = "../../index.html" > Sprout 1.0 documentation< / a > » < / li >
< li > < a href = "../index.html" > Libraries< / a > » < / li >
2013-08-24 09:02:54 +00:00
< li > < a href = "index.html" accesskey = "U" > Sprout.Algorithm< / a > » < / li >
< / ul >
2013-08-25 15:09:33 +00:00
< / div >
< div class = "sphinxsidebar" >
< div class = "sphinxsidebarwrapper" >
2013-08-30 05:02:02 +00:00
< h3 > < a href = "../../index.html" > Table Of Contents< / a > < / h3 >
2013-08-30 02:14:14 +00:00
< ul >
< li > < a class = "reference internal" href = "#" > tristate_lexicographical_compare< / a > < ul >
< li > < a class = "reference internal" href = "#interface" > Interface< / a > < / li >
< li > < a class = "reference internal" href = "#returns" > Returns< / a > < / li >
< li > < a class = "reference internal" href = "#remarks" > Remarks< / a > < / li >
< li > < a class = "reference internal" href = "#examples" > Examples< / a > < / li >
< li > < a class = "reference internal" href = "#complexity" > Complexity< / a > < / li >
< li > < a class = "reference internal" href = "#header" > Header< / a > < / li >
2013-08-25 15:09:33 +00:00
< / ul >
< / li >
< / ul >
2013-08-30 02:14:14 +00:00
< h4 > Previous topic< / h4 >
< p class = "topless" > < a href = "lexicographical_compare.html"
title="previous chapter">lexicographical_compare< / a > < / p >
< h4 > Next topic< / h4 >
< p class = "topless" > < a href = "clamp.html"
title="next chapter">clamp< / a > < / p >
< h3 > This Page< / h3 >
< ul class = "this-page-menu" >
2013-08-30 05:02:02 +00:00
< li > < a href = "../../_sources/libs/algorithm/tristate_lexicographical_compare.txt"
2013-08-30 02:14:14 +00:00
rel="nofollow">Show Source< / a > < / li >
< / ul >
< div id = "searchbox" style = "display: none" >
< h3 > Quick search< / h3 >
2013-08-30 05:02:02 +00:00
< form class = "search" action = "../../search.html" method = "get" >
2013-08-30 02:14:14 +00:00
< input type = "text" name = "q" / >
< input type = "submit" value = "Go" / >
< input type = "hidden" name = "check_keywords" value = "yes" / >
< input type = "hidden" name = "area" value = "default" / >
< / form >
< p class = "searchtip" style = "font-size: 90%" >
Enter search terms or a module, class or function name.
< / p >
< / div >
< script type = "text/javascript" > $ ( '#searchbox' ) . show ( 0 ) ; < / script >
2013-08-25 15:09:33 +00:00
< / div >
< / div >
2013-08-24 09:02:54 +00:00
< div class = "document" >
< div class = "documentwrapper" >
< div class = "bodywrapper" >
< div class = "body" >
< div class = "section" id = "tristate-lexicographical-compare" >
< h1 > tristate_lexicographical_compare< a class = "headerlink" href = "#tristate-lexicographical-compare" title = "Permalink to this headline" > ¶< / a > < / h1 >
< div class = "section" id = "interface" >
< h2 > Interface< a class = "headerlink" href = "#interface" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "highlight-c++" > < div class = "highlight" > < pre > < span class = "k" > template< / span > < span class = "o" > < < / span > < span class = "k" > typename< / span > < span class = "n" > InputIterator1< / span > < span class = "p" > ,< / span > < span class = "k" > typename< / span > < span class = "n" > InputIterator2< / span > < span class = "o" > > < / span >
< span class = "kr" > inline< / span > < span class = "n" > SPROUT_CONSTEXPR< / span > < span class = "kt" > int< / span >
< span class = "n" > tristate_lexicographical_compare< / span > < span class = "p" > (< / span >
2013-08-25 14:14:03 +00:00
< span class = "n" > InputIterator1< / span > < span class = "n" > first1< / span > < span class = "p" > ,< / span > < span class = "n" > InputIterator1< / span > < span class = "n" > last1< / span > < span class = "p" > ,< / span >
< span class = "n" > InputIterator2< / span > < span class = "n" > first2< / span > < span class = "p" > ,< / span > < span class = "n" > InputIterator2< / span > < span class = "n" > last2< / span >
< span class = "p" > );< / span >
2013-08-24 09:02:54 +00:00
< span class = "k" > template< / span > < span class = "o" > < < / span > < span class = "k" > typename< / span > < span class = "n" > InputIterator1< / span > < span class = "p" > ,< / span > < span class = "k" > typename< / span > < span class = "n" > InputIterator2< / span > < span class = "p" > ,< / span > < span class = "k" > typename< / span > < span class = "n" > Compare< / span > < span class = "o" > > < / span >
< span class = "kr" > inline< / span > < span class = "n" > SPROUT_CONSTEXPR< / span > < span class = "kt" > int< / span >
< span class = "n" > tristate_lexicographical_compare< / span > < span class = "p" > (< / span >
2013-08-25 14:14:03 +00:00
< span class = "n" > InputIterator1< / span > < span class = "n" > first1< / span > < span class = "p" > ,< / span > < span class = "n" > InputIterator1< / span > < span class = "n" > last1< / span > < span class = "p" > ,< / span >
< span class = "n" > InputIterator2< / span > < span class = "n" > first2< / span > < span class = "p" > ,< / span > < span class = "n" > InputIterator2< / span > < span class = "n" > last2< / span > < span class = "p" > ,< / span >
< span class = "n" > Compare< / span > < span class = "n" > comp< / span >
< span class = "p" > );< / span >
2013-09-03 12:53:22 +00:00
< span class = "c1" > // delimiter version< / span >
< span class = "k" > template< / span > < span class = "o" > < < / span > < span class = "k" > typename< / span > < span class = "n" > InputIterator1< / span > < span class = "p" > ,< / span > < span class = "k" > typename< / span > < span class = "n" > T1< / span > < span class = "p" > ,< / span > < span class = "k" > typename< / span > < span class = "n" > InputIterator2< / span > < span class = "p" > ,< / span > < span class = "k" > typename< / span > < span class = "n" > T2< / span > < span class = "o" > > < / span >
< span class = "kr" > inline< / span > < span class = "n" > SPROUT_CONSTEXPR< / span > < span class = "kt" > int< / span >
< span class = "n" > tristate_lexicographical_compare< / span > < span class = "p" > (< / span >
< span class = "n" > InputIterator1< / span > < span class = "n" > first1< / span > < span class = "p" > ,< / span > < span class = "n" > InputIterator1< / span > < span class = "n" > last1< / span > < span class = "p" > ,< / span > < span class = "n" > T1< / span > < span class = "k" > const< / span > < span class = "o" > & < / span > < span class = "n" > delim1< / span > < span class = "p" > ,< / span >
< span class = "n" > InputIterator2< / span > < span class = "n" > first2< / span > < span class = "p" > ,< / span > < span class = "n" > InputIterator2< / span > < span class = "n" > last2< / span > < span class = "p" > ,< / span > < span class = "n" > T2< / span > < span class = "k" > const< / span > < span class = "o" > & < / span > < span class = "n" > delim2< / span >
< span class = "p" > );< / span >
< span class = "k" > template< / span > < span class = "o" > < < / span > < span class = "k" > typename< / span > < span class = "n" > InputIterator1< / span > < span class = "p" > ,< / span > < span class = "k" > typename< / span > < span class = "n" > T1< / span > < span class = "p" > ,< / span > < span class = "k" > typename< / span > < span class = "n" > InputIterator2< / span > < span class = "p" > ,< / span > < span class = "k" > typename< / span > < span class = "n" > T2< / span > < span class = "p" > ,< / span > < span class = "k" > typename< / span > < span class = "n" > Compare< / span > < span class = "o" > > < / span >
< span class = "kr" > inline< / span > < span class = "n" > SPROUT_CONSTEXPR< / span > < span class = "kt" > int< / span >
< span class = "n" > tristate_lexicographical_compare< / span > < span class = "p" > (< / span >
< span class = "n" > InputIterator1< / span > < span class = "n" > first1< / span > < span class = "p" > ,< / span > < span class = "n" > InputIterator1< / span > < span class = "n" > last1< / span > < span class = "p" > ,< / span > < span class = "n" > T1< / span > < span class = "k" > const< / span > < span class = "o" > & < / span > < span class = "n" > delim1< / span > < span class = "p" > ,< / span >
< span class = "n" > InputIterator2< / span > < span class = "n" > first2< / span > < span class = "p" > ,< / span > < span class = "n" > InputIterator2< / span > < span class = "n" > last2< / span > < span class = "p" > ,< / span > < span class = "n" > T2< / span > < span class = "k" > const< / span > < span class = "o" > & < / span > < span class = "n" > delim2< / span > < span class = "p" > ,< / span >
< span class = "n" > Compare< / span > < span class = "n" > comp< / span >
< span class = "p" > );< / span >
2013-08-24 09:02:54 +00:00
< / pre > < / div >
< / div >
< / div >
< div class = "section" id = "returns" >
< h2 > Returns< a class = "headerlink" href = "#returns" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "line-block" >
2013-09-03 12:53:22 +00:00
< div class = "line" > A value less than zero if the sequence of elements defined by the range [first1,last1) is lexicographically less than the sequence of elements defined by the range [first2,last2).< / div >
< div class = "line" > Otherwise, a value greater than zero if the sequence of elements defined by the range [first1,last1) is lexicographically greater than the sequence of elements defined by the range [first2,last2).< / div >
2013-08-24 09:02:54 +00:00
< div class = "line" > Otherwise, returns a zero value.< / div >
< / div >
2013-09-03 12:53:22 +00:00
< div class = "line-block" >
< div class = "line" > If the delimiter version, last1 and last2 are replaced by < tt class = "docutils literal" > < span class = "pre" > find(first1,< / span > < span class = "pre" > last1,< / span > < span class = "pre" > delim1)< / span > < / tt > and < tt class = "docutils literal" > < span class = "pre" > find(first2,last2,delim2)< / span > < / tt > .< / div >
< / div >
2013-08-24 09:02:54 +00:00
< / div >
< div class = "section" id = "remarks" >
< h2 > Remarks< a class = "headerlink" href = "#remarks" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "line-block" >
< div class = "line" > If two sequences have the same number of elements and their corresponding elements are equivalent, then neither sequence is lexicographically less than the other.< / div >
< div class = "line" > If one sequence is a prefix of the other, then the shorter sequence is lexicographically less than the longer sequence.< / div >
< div class = "line" > Otherwise, the lexicographical comparison of the sequences yields the same result as the comparison of the first corresponding pair of elements that are not equivalent.< / div >
< / div >
< div class = "line-block" >
< div class = "line" > An empty sequence is lexicographically less than any non-empty sequence, but not less than any empty sequence.< / div >
< / div >
< / div >
< div class = "section" id = "examples" >
< h2 > Examples< a class = "headerlink" href = "#examples" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "highlight-c++" > < div class = "highlight" > < pre > < span class = "cp" > #include < sprout/algorithm/tristate_lexicographical_compare.hpp> < / span >
< span class = "cp" > #include < sprout/array.hpp> < / span >
< span class = "cp" > #include < sprout/container.hpp> < / span >
< span class = "k" > using< / span > < span class = "k" > namespace< / span > < span class = "n" > sprout< / span > < span class = "p" > ;< / span >
< span class = "n" > SPROUT_STATIC_CONSTEXPR< / span > < span class = "k" > auto< / span > < span class = "n" > input1< / span > < span class = "o" > =< / span > < span class = "n" > array< / span > < span class = "o" > < < / span > < span class = "kt" > int< / span > < span class = "p" > ,< / span > < span class = "mi" > 10< / span > < span class = "o" > > < / span > < span class = "p" > {{< / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "mi" > 3< / span > < span class = "p" > ,< / span > < span class = "mi" > 4< / span > < span class = "p" > ,< / span > < span class = "mi" > 5< / span > < span class = "p" > ,< / span > < span class = "mi" > 6< / span > < span class = "p" > ,< / span > < span class = "mi" > 7< / span > < span class = "p" > ,< / span > < span class = "mi" > 8< / span > < span class = "p" > ,< / span > < span class = "mi" > 9< / span > < span class = "p" > ,< / span > < span class = "mi" > 10< / span > < span class = "p" > }};< / span >
2013-09-03 12:53:22 +00:00
< span class = "n" > SPROUT_STATIC_CONSTEXPR< / span > < span class = "k" > auto< / span > < span class = "n" > input2< / span > < span class = "o" > =< / span > < span class = "n" > array< / span > < span class = "o" > < < / span > < span class = "kt" > int< / span > < span class = "p" > ,< / span > < span class = "mi" > 10< / span > < span class = "o" > > < / span > < span class = "p" > {{< / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "mi" > 3< / span > < span class = "p" > ,< / span > < span class = "mi" > 4< / span > < span class = "p" > ,< / span > < span class = "mi" > 5< / span > < span class = "p" > ,< / span > < span class = "mi" > 10< / span > < span class = "p" > ,< / span > < span class = "mi" > 9< / span > < span class = "p" > ,< / span > < span class = "mi" > 8< / span > < span class = "p" > ,< / span > < span class = "mi" > 7< / span > < span class = "p" > ,< / span > < span class = "mi" > 6< / span > < span class = "p" > }};< / span >
< span class = "n" > SPROUT_STATIC_CONSTEXPR< / span > < span class = "k" > auto< / span > < span class = "n" > result1< / span > < span class = "o" > =< / span > < span class = "n" > sprout< / span > < span class = "o" > ::< / span > < span class = "n" > tristate_lexicographical_compare< / span > < span class = "p" > (< / span > < span class = "n" > begin< / span > < span class = "p" > (< / span > < span class = "n" > input1< / span > < span class = "p" > ),< / span > < span class = "n" > end< / span > < span class = "p" > (< / span > < span class = "n" > input1< / span > < span class = "p" > ),< / span > < span class = "n" > begin< / span > < span class = "p" > (< / span > < span class = "n" > input2< / span > < span class = "p" > ),< / span > < span class = "n" > end< / span > < span class = "p" > (< / span > < span class = "n" > input2< / span > < span class = "p" > ));< / span >
< span class = "n" > SPROUT_STATIC_CONSTEXPR< / span > < span class = "k" > auto< / span > < span class = "n" > result2< / span > < span class = "o" > =< / span > < span class = "n" > sprout< / span > < span class = "o" > ::< / span > < span class = "n" > tristate_lexicographical_compare< / span > < span class = "p" > (< / span > < span class = "n" > begin< / span > < span class = "p" > (< / span > < span class = "n" > input1< / span > < span class = "p" > ),< / span > < span class = "n" > end< / span > < span class = "p" > (< / span > < span class = "n" > input1< / span > < span class = "p" > ),< / span > < span class = "mi" > 10< / span > < span class = "p" > ,< / span > < span class = "n" > begin< / span > < span class = "p" > (< / span > < span class = "n" > input2< / span > < span class = "p" > ),< / span > < span class = "n" > end< / span > < span class = "p" > (< / span > < span class = "n" > input2< / span > < span class = "p" > ),< / span > < span class = "mi" > 10< / span > < span class = "p" > );< / span >
< span class = "n" > static_assert< / span > < span class = "p" > (< / span > < span class = "n" > result1< / span > < span class = "o" > < < / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "s" > " input1 < input2 by lexicographical comparison." < / span > < span class = "p" > );< / span >
< span class = "n" > static_assert< / span > < span class = "p" > (< / span > < span class = "n" > result2< / span > < span class = "o" > > < / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "s" > " input1 < input2 by lexicographical comparison(delimited by 10)." < / span > < span class = "p" > );< / span >
2013-08-24 09:02:54 +00:00
< / pre > < / div >
< / div >
< / div >
< div class = "section" id = "complexity" >
< h2 > Complexity< a class = "headerlink" href = "#complexity" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "line-block" >
< div class = "line" > At most < tt class = "docutils literal" > < span class = "pre" > 2*min((last1< / span > < span class = "pre" > -< / span > < span class = "pre" > first1),< / span > < span class = "pre" > (last2< / span > < span class = "pre" > -< / span > < span class = "pre" > first2))< / span > < span class = "pre" > +< / span > < span class = "pre" > O(1)< / span > < / tt > applications of the corresponding comparison.< / div >
< div class = "line" > Recursive function invocations in < em > O(logN)< / em > (logarithmic) depth.< / div >
< / div >
< / div >
< div class = "section" id = "header" >
< h2 > Header< a class = "headerlink" href = "#header" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "line-block" >
< div class = "line" > < tt class = "docutils literal" > < span class = "pre" > sprout/algorithm/tristate_lexicographical_compare.hpp< / span > < / tt > < / div >
< div class = "line" > Convenience header: < tt class = "docutils literal" > < span class = "pre" > sprout/algorithm.hpp< / span > < / tt > < / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "clearer" > < / div >
< / div >
< div class = "related" >
< h3 > Navigation< / h3 >
< ul >
< li class = "right" style = "margin-right: 10px" >
2013-08-30 05:02:02 +00:00
< a href = "../../genindex.html" title = "General Index"
2013-08-24 09:02:54 +00:00
>index< / a > < / li >
< li class = "right" >
< a href = "clamp.html" title = "clamp"
>next< / a > |< / li >
< li class = "right" >
< a href = "lexicographical_compare.html" title = "lexicographical_compare"
>previous< / a > |< / li >
2013-08-30 05:02:02 +00:00
< li > < a href = "../../index.html" > Sprout 1.0 documentation< / a > » < / li >
< li > < a href = "../index.html" > Libraries< / a > » < / li >
2013-08-24 09:02:54 +00:00
< li > < a href = "index.html" > Sprout.Algorithm< / a > » < / li >
< / ul >
< / div >
< div class = "footer" >
2013-08-30 02:14:14 +00:00
© Copyright 2013, Bolero MURAKAMI.
Created using < a href = "http://sphinx.pocoo.org/" > Sphinx< / a > 1.1.3.
2013-08-24 09:02:54 +00:00
< / div >
< / body >
< / html >