The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
 lang="en" dir="ltr">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>
    equal_range    [C++ Reference]
  </title>

  <meta name="generator" content="DokuWiki Release 2009-12-25c &quot;Lemming&quot;" />
<meta name="robots" content="index,follow" />
<meta name="date" content="2009-10-09T01:52:55-0700" />
<meta name="keywords" content="stl,algorithm,equal_range" />
<link rel="search" type="application/opensearchdescription+xml" href="/wiki/lib/exe/opensearch.php" title="C++ Reference" />
<link rel="start" href="/wiki/" />
<link rel="contents" href="/wiki/stl/algorithm/equal_range?do=index" title="Index" />
<link rel="alternate" type="application/rss+xml" title="Recent Changes" href="/wiki/feed.php" />
<link rel="alternate" type="application/rss+xml" title="Current Namespace" href="/wiki/feed.php?mode=list&amp;ns=stl:algorithm" />
<link rel="edit" title="Edit this page" href="/wiki/stl/algorithm/equal_range?do=edit" />
<link rel="alternate" type="text/html" title="Plain HTML" href="/wiki/_export/xhtml/stl/algorithm/equal_range" />
<link rel="alternate" type="text/plain" title="Wiki Markup" href="/wiki/_export/raw/stl/algorithm/equal_range" />
<link rel="canonical" href="http://www.cppreference.com/wiki/stl/algorithm/equal_range" />
<link rel="stylesheet" media="all" type="text/css" href="/wiki/lib/exe/css.php?s=all&amp;t=custom1&amp;tseed=1272971091" />
<link rel="stylesheet" media="screen" type="text/css" href="/wiki/lib/exe/css.php?t=custom1&amp;tseed=1272971091" />
<link rel="stylesheet" media="print" type="text/css" href="/wiki/lib/exe/css.php?s=print&amp;t=custom1&amp;tseed=1272971091" />
<script type="text/javascript" charset="utf-8" ><!--//--><![CDATA[//><!--
var NS='stl:algorithm';var JSINFO = {"id":"stl:algorithm:equal_range","namespace":"stl:algorithm"};
//--><!]]></script>
<script type="text/javascript" charset="utf-8" src="/wiki/lib/exe/js.php?tseed=1272971091" ></script>

  <link rel="shortcut icon" href="/wiki/lib/tpl/custom1/images/favicon.png" />

  </head>

<body>
<div class="dokuwiki">
  
  <div class="stylehead">

    <div class="header">
      <div class="pagename">
        [[<a href="../../stl/algorithm/equal_range.html"  title="Backlinks">equal_range</a>]]
      </div>
      <div class="logo">
        <a href="http://www.cppreference.com"  name="dokuwiki__top" id="dokuwiki__top" accesskey="h" title="[ALT+H]">C++ Reference</a>      </div>

      <div class="clearer"></div>
    </div>

    
    
        <div class="breadcrumbs">
      <span class="bchead">You are here: </span><a href="../../start.html"  title="start">C++ Reference</a> &raquo; <a href="../../stl/start.html"  title="stl:start">C++ Standard Template Library</a> &raquo; <a href="../../stl/algorithm/start.html"  title="stl:algorithm:start">C++ Algorithms</a> &raquo; <a href="../../stl/algorithm/equal_range.html"  title="stl:algorithm:equal_range">equal_range</a>    </div>
    
  </div>

<div class="plugin_translation"><span>Translations of this page<sup><a href="../../localization.html" class="wikilink1" title="localization">?</a></sup>:</span> <ul>  <li><div class="li"><span class="curid"><a href="../../stl/algorithm/equal_range.html" class="wikilink1" title="stl:algorithm:equal_range">en</a></span></div></li>  <li><div class="li"><a href="../../br-pt/stl/algorithm/equal_range.html" class="wikilink2" title="br-pt:stl:algorithm:equal_range" rel="nofollow">br-pt</a></div></li>  <li><div class="li"><a href="../../cn/stl/algorithm/equal_range.html" class="wikilink2" title="cn:stl:algorithm:equal_range" rel="nofollow">cn</a></div></li>  <li><div class="li"><a href="../../cz/stl/algorithm/equal_range.html" class="wikilink2" title="cz:stl:algorithm:equal_range" rel="nofollow">cz</a></div></li>  <li><div class="li"><a href="../../de/stl/algorithm/equal_range.html" class="wikilink2" title="de:stl:algorithm:equal_range" rel="nofollow">de</a></div></li>  <li><div class="li"><a href="../../es/stl/algorithm/equal_range.html" class="wikilink2" title="es:stl:algorithm:equal_range" rel="nofollow">es</a></div></li>  <li><div class="li"><a href="../../fr/stl/algorithm/equal_range.html" class="wikilink2" title="fr:stl:algorithm:equal_range" rel="nofollow">fr</a></div></li>  <li><div class="li"><a href="../../it/stl/algorithm/equal_range.html" class="wikilink2" title="it:stl:algorithm:equal_range" rel="nofollow">it</a></div></li>  <li><div class="li"><a href="../../jp/stl/algorithm/equal_range.html" class="wikilink2" title="jp:stl:algorithm:equal_range" rel="nofollow">jp</a></div></li>  <li><div class="li"><a href="../../nl/stl/algorithm/equal_range.html" class="wikilink2" title="nl:stl:algorithm:equal_range" rel="nofollow">nl</a></div></li>  <li><div class="li"><a href="../../pl/stl/algorithm/equal_range.html" class="wikilink2" title="pl:stl:algorithm:equal_range" rel="nofollow">pl</a></div></li>  <li><div class="li"><a href="../../ro/stl/algorithm/equal_range.html" class="wikilink2" title="ro:stl:algorithm:equal_range" rel="nofollow">ro</a></div></li>  <li><div class="li"><a href="../../ru/stl/algorithm/equal_range.html" class="wikilink2" title="ru:stl:algorithm:equal_range" rel="nofollow">ru</a></div></li>  <li><div class="li"><a href="../../sk/stl/algorithm/equal_range.html" class="wikilink2" title="sk:stl:algorithm:equal_range" rel="nofollow">sk</a></div></li>  <li><div class="li"><a href="../../tr/stl/algorithm/equal_range.html" class="wikilink2" title="tr:stl:algorithm:equal_range" rel="nofollow">tr</a></div></li>  <li><div class="li"><a href="../../tw/stl/algorithm/equal_range.html" class="wikilink2" title="tw:stl:algorithm:equal_range" rel="nofollow">tw</a></div></li></ul></div>
  
  
  <div class="page">

    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-2828341-1";
urchinTracker();
</script>
    <!-- wikipage start -->
    


<h2><a name="equal_range" id="equal_range">equal_range</a></h2>
<div class="level2">

<p>
Syntax:
</p>
<pre class="c code c++" style="font-family:monospace;">    <span class="co2">#include &lt;algorithm&gt;</span>
    pair<span class="sy0">&lt;</span>forward_iterator<span class="sy0">,</span>forward_iterator<span class="sy0">&gt;</span> equal_range<span class="br0">&#40;</span> forward_iterator first<span class="sy0">,</span> forward_iterator last<span class="sy0">,</span> <span class="kw4">const</span> TYPE<span class="sy0">&amp;</span> val <span class="br0">&#41;</span><span class="sy0">;</span>
    pair<span class="sy0">&lt;</span>forward_iterator<span class="sy0">,</span>forward_iterator<span class="sy0">&gt;</span> equal_range<span class="br0">&#40;</span> forward_iterator first<span class="sy0">,</span> forward_iterator last<span class="sy0">,</span> <span class="kw4">const</span> TYPE<span class="sy0">&amp;</span> val<span class="sy0">,</span> CompFn comp <span class="br0">&#41;</span><span class="sy0">;</span></pre>
<p>
The equal_range() function returns the range of elements between first and last
that are equal to val. This function assumes that the elements between first
and last are in order according to comp, if it is specified, or the &lt; operator
otherwise.
</p>

<p>
equal_range() can be thought of as a combination of the <a href="../../stl/algorithm/lower_bound.html" class="wikilink1" title="stl:algorithm:lower_bound">lower_bound</a> and
<a href="../../stl/algorithm/upper_bound.html" class="wikilink1" title="stl:algorithm:upper_bound">upper_bound</a> functions, since the first of the pair of iterators that it
returns is what lower_bound returns and the second iterator in the pair is
what upper_bound returns.
</p>

<p>
For example, the following code uses equal_range() to determine all of the
possible places that the number 8 can be inserted into an ordered vector of
integers such that the existing ordering is preserved:
</p>
<pre class="c code c++" style="font-family:monospace;">   vector<span class="sy0">&lt;</span>int<span class="sy0">&gt;</span> nums<span class="sy0">;</span>
   nums.<span class="me1">push_back</span><span class="br0">&#40;</span> <span class="sy0">-</span>242 <span class="br0">&#41;</span><span class="sy0">;</span>
   nums.<span class="me1">push_back</span><span class="br0">&#40;</span> <span class="sy0">-</span>1 <span class="br0">&#41;</span><span class="sy0">;</span>
   nums.<span class="me1">push_back</span><span class="br0">&#40;</span> 0 <span class="br0">&#41;</span><span class="sy0">;</span>
   nums.<span class="me1">push_back</span><span class="br0">&#40;</span> 5 <span class="br0">&#41;</span><span class="sy0">;</span>
   nums.<span class="me1">push_back</span><span class="br0">&#40;</span> 8 <span class="br0">&#41;</span><span class="sy0">;</span>
   nums.<span class="me1">push_back</span><span class="br0">&#40;</span> 8 <span class="br0">&#41;</span><span class="sy0">;</span>
   nums.<span class="me1">push_back</span><span class="br0">&#40;</span> 11 <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
   pair<span class="sy0">&lt;</span>vector<span class="sy0">&lt;</span>int<span class="sy0">&gt;::</span><span class="me2">iterator</span><span class="sy0">,</span> vector<span class="sy0">&lt;</span>int<span class="sy0">&gt;::</span><span class="me2">iterator</span><span class="sy0">&gt;</span> result<span class="sy0">;</span>
   <span class="kw4">int</span> new_val <span class="sy0">=</span> <span class="nu0">8</span><span class="sy0">;</span>
&nbsp;
   result <span class="sy0">=</span> equal_range<span class="br0">&#40;</span> nums.<span class="me1">begin</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> nums.<span class="me1">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> new_val <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
   <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a> <span class="sy0">&lt;&lt;</span> <span class="st0">&quot;The first place that &quot;</span> <span class="sy0">&lt;&lt;</span> new_val <span class="sy0">&lt;&lt;</span> <span class="st0">&quot; could be inserted is before &quot;</span>
        <span class="sy0">&lt;&lt;</span> <span class="sy0">*</span>result.<span class="me1">first</span> <span class="sy0">&lt;&lt;</span> <span class="st0">&quot;, and the last place that it could be inserted is before &quot;</span>
        <span class="sy0">&lt;&lt;</span> <span class="sy0">*</span>result.<span class="me1">second</span> <span class="sy0">&lt;&lt;</span> endl<span class="sy0">;</span></pre>
<p>
The above code produces the following output:
</p>
<pre class="code">
   The first place that 8 could be inserted is before 8,
   and the last place that it could be inserted is before 11</pre>
<p>
Related Topics: <a href="../../stl/algorithm/binary_search.html" class="wikilink1" title="stl:algorithm:binary_search">binary_search</a>, <a href="../../stl/algorithm/lower_bound.html" class="wikilink1" title="stl:algorithm:lower_bound">lower_bound</a>, <a href="../../stl/algorithm/upper_bound.html" class="wikilink1" title="stl:algorithm:upper_bound">upper_bound</a>
</p>

</div>
<div class="secedit"><form class="button btn_secedit" method="post" action="/wiki/stl/algorithm/equal_range"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="lines" value="3-" /><input type="hidden" name="rev" value="1255078375" /><input type="submit" value="Edit" class="button" title="equal_range" /></div></form></div>
    <!-- wikipage stop -->
  </div>

  <div class="clearer">&nbsp;</div>

  
  <div class="stylefoot">

    <div class="meta">
      <div class="user">
              </div>
      <!--
      <div class="doc">
        stl/algorithm/equal_range.txt &middot; Last modified: 10/09/2009 01:52 by 124.255.102.233      </div>
      -->
    </div>

   
    <div class="bar" id="bar__bottom">
      <div class="bar-left" id="bar__bottomleft">
        <a href="../../stl/algorithm/equal_range.html"  class="action edit" accesskey="e" rel="nofollow">Edit this page</a> &#149;
        <a href="../../stl/algorithm/equal_range.html"  class="action revisions" accesskey="o" rel="nofollow">Old revisions</a>      </div>
      <div class="bar-right" id="bar__bottomright">
         &#149;
         &#149;
         &#149;
        <a href="../../stl/algorithm/equal_range.html"  class="action login" rel="nofollow">Login</a> &#149;
        <a href="../../stl/algorithm/equal_range.html"  class="action index" accesskey="x" rel="nofollow">Index</a> &#149;
        <a href="../../stl/algorithm/equal_range.html"  class="action recent" accesskey="r" rel="nofollow">Recent changes</a> &#149;
        <a  href="../../feed.php.html" title="Recent changes RSS feed">RSS</a> &#149;
        <a href='http://creativecommons.org/licenses/by/3.0/us/' title='Creative Commons license'>cc</a> &#149;
        <form action="/wiki/" accept-charset="utf-8" class="search" id="dw__search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[ALT+F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>&nbsp;
      </div>
      <div class="clearer"></div>
    </div>

  </div>

</div>

<div class="no"><img src="/wiki/lib/exe/indexer.php?id=stl%3Aalgorithm%3Aequal_range&amp;1273196284" width="1" height="1" alt=""  /></div>
</body>
</html>