<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>upper_bound</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../non_mutating.html" title="Non-mutating algorithms">
<link rel="prev" href="search_n.html" title="search_n">
<link rel="next" href="../set.html" title="Set algorithms">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="search_n.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../non_mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../set.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.non_mutating.upper_bound"></a><a class="link" href="upper_bound.html" title="upper_bound">
          upper_bound</a>
</h5></div></div></div>
<a name="range.reference.algorithms.non_mutating.upper_bound.prototype"></a><h6>
<a name="id841454"></a>
            <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.prototype">Prototype</a>
          </h6>
<p>
            
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>

<span class="keyword">template</span><span class="special">&lt;</span>
    <span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
    <span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
    <span class="keyword">class</span> <span class="identifier">Value</span>
    <span class="special">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
</pre>
<p>
          </p>
<a name="range.reference.algorithms.non_mutating.upper_bound.description"></a><h6>
<a name="id841738"></a>
            <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.description">Description</a>
          </h6>
<p>
            The versions of <code class="computeroutput"><span class="identifier">upper_bound</span></code>
            that return an iterator, returns the first iterator in the range <code class="computeroutput"><span class="identifier">rng</span></code> such that: without predicate -
            <code class="computeroutput"><span class="identifier">val</span> <span class="special">&lt;</span>
            <span class="special">*</span><span class="identifier">i</span></code>
            is <code class="computeroutput"><span class="keyword">true</span></code>, with predicate
            - <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">val</span><span class="special">,</span> <span class="special">*</span><span class="identifier">i</span><span class="special">)</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>.
          </p>
<p>
            <code class="computeroutput"><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
            is returned if no such iterator exists.
          </p>
<p>
            The versions of <code class="computeroutput"><span class="identifier">upper_bound</span></code>
            that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
            defines <code class="computeroutput"><span class="identifier">found</span></code> in the
            same manner as the returned iterator described above.
          </p>
<a name="range.reference.algorithms.non_mutating.upper_bound.definition"></a><h6>
<a name="id841934"></a>
            <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.definition">Definition</a>
          </h6>
<p>
            Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">upper_bound</span><span class="special">.</span><span class="identifier">hpp</span></code>
          </p>
<a name="range.reference.algorithms.non_mutating.upper_bound.requirements"></a><h6>
<a name="id842007"></a>
            <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.requirements">Requirements</a>
          </h6>
<p>
            <span class="bold"><strong>For the non-predicate versions:</strong></span>
          </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
                <code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a
                model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward
                Range</a> Concept.
              </li>
<li class="listitem">
                <code class="computeroutput"><span class="identifier">Value</span></code> is a model
                of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
              </li>
<li class="listitem">
                The ordering of objects of type <code class="computeroutput"><span class="identifier">Value</span></code>
                is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
                as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
                requirements.
              </li>
<li class="listitem">
                <code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
                type is the same type as <code class="computeroutput"><span class="identifier">Value</span></code>.
              </li>
</ul></div>
<p>
            <span class="bold"><strong>For the predicate versions:</strong></span>
          </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
                <code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a
                model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward
                Range</a> Concept.
              </li>
<li class="listitem">
                <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
                a model of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
              </li>
<li class="listitem">
                <code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
                type is the same type as <code class="computeroutput"><span class="identifier">Value</span></code>.
              </li>
<li class="listitem">
                <code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
                type is convertible to both of <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
                argument types.
              </li>
</ul></div>
<a name="range.reference.algorithms.non_mutating.upper_bound.precondition_"></a><h6>
<a name="id842284"></a>
            <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.precondition_">Precondition:</a>
          </h6>
<p>
            <span class="bold"><strong>For the non-predicate versions:</strong></span>
          </p>
<p>
            <code class="computeroutput"><span class="identifier">rng</span></code> is sorted in ascending
            order according to <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code>.
          </p>
<p>
            <span class="bold"><strong>For the predicate versions:</strong></span>
          </p>
<p>
            <code class="computeroutput"><span class="identifier">rng</span></code> is sorted in ascending
            order according to <code class="computeroutput"><span class="identifier">pred</span></code>.
          </p>
<a name="range.reference.algorithms.non_mutating.upper_bound.complexity"></a><h6>
<a name="id842377"></a>
            <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.complexity">Complexity</a>
          </h6>
<p>
            For ranges that model the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
            Access Range</a> Concept the complexity is <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">log</span> <span class="identifier">N</span><span class="special">)</span></code>,
            where <code class="computeroutput"><span class="identifier">N</span></code> is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
            For all other range types the complexity is <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">N</span><span class="special">)</span></code>.
          </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2003 -2010 Thorsten Ottosen, Neil Groves<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="search_n.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../non_mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../set.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
