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>
    erase    [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="2010-01-04T10:23:51-0800" />
<meta name="keywords" content="stl,list,erase" />
<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/list/erase?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:list" />
<link rel="edit" title="Edit this page" href="/wiki/stl/list/erase?do=edit" />
<link rel="alternate" type="text/html" title="Plain HTML" href="/wiki/_export/xhtml/stl/list/erase" />
<link rel="alternate" type="text/plain" title="Wiki Markup" href="/wiki/_export/raw/stl/list/erase" />
<link rel="canonical" href="http://www.cppreference.com/wiki/stl/list/erase" />
<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:list';var JSINFO = {"id":"stl:list:erase","namespace":"stl:list"};
//--><!]]></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/list/erase.html"  title="Backlinks">erase</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/list/start.html"  title="stl:list:start">C++ Lists</a> &raquo; <a href="../../stl/list/erase.html"  title="stl:list:erase">erase</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/list/erase.html" class="wikilink1" title="stl:list:erase">en</a></span></div></li>  <li><div class="li"><a href="../../br-pt/stl/list/erase.html" class="wikilink1" title="br-pt:stl:list:erase">br-pt</a></div></li>  <li><div class="li"><a href="../../cn/stl/list/erase.html" class="wikilink2" title="cn:stl:list:erase" rel="nofollow">cn</a></div></li>  <li><div class="li"><a href="../../cz/stl/list/erase.html" class="wikilink2" title="cz:stl:list:erase" rel="nofollow">cz</a></div></li>  <li><div class="li"><a href="../../de/stl/list/erase.html" class="wikilink2" title="de:stl:list:erase" rel="nofollow">de</a></div></li>  <li><div class="li"><a href="../../es/stl/list/erase.html" class="wikilink2" title="es:stl:list:erase" rel="nofollow">es</a></div></li>  <li><div class="li"><a href="../../fr/stl/list/erase.html" class="wikilink2" title="fr:stl:list:erase" rel="nofollow">fr</a></div></li>  <li><div class="li"><a href="../../it/stl/list/erase.html" class="wikilink2" title="it:stl:list:erase" rel="nofollow">it</a></div></li>  <li><div class="li"><a href="../../jp/stl/list/erase.html" class="wikilink2" title="jp:stl:list:erase" rel="nofollow">jp</a></div></li>  <li><div class="li"><a href="../../nl/stl/list/erase.html" class="wikilink2" title="nl:stl:list:erase" rel="nofollow">nl</a></div></li>  <li><div class="li"><a href="../../pl/stl/list/erase.html" class="wikilink2" title="pl:stl:list:erase" rel="nofollow">pl</a></div></li>  <li><div class="li"><a href="../../ro/stl/list/erase.html" class="wikilink2" title="ro:stl:list:erase" rel="nofollow">ro</a></div></li>  <li><div class="li"><a href="../../ru/stl/list/erase.html" class="wikilink1" title="ru:stl:list:erase">ru</a></div></li>  <li><div class="li"><a href="../../sk/stl/list/erase.html" class="wikilink2" title="sk:stl:list:erase" rel="nofollow">sk</a></div></li>  <li><div class="li"><a href="../../tr/stl/list/erase.html" class="wikilink2" title="tr:stl:list:erase" rel="nofollow">tr</a></div></li>  <li><div class="li"><a href="../../tw/stl/list/erase.html" class="wikilink2" title="tw:stl:list:erase" 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="erase" id="erase">erase</a></h2>
<div class="level2">

<p>
Syntax:
</p>
<pre class="c code c++" style="font-family:monospace;">    <span class="co2">#include &lt;list&gt;</span>
    iterator erase<span class="br0">&#40;</span> iterator loc <span class="br0">&#41;</span><span class="sy0">;</span>
    iterator erase<span class="br0">&#40;</span> iterator start<span class="sy0">,</span> iterator end <span class="br0">&#41;</span><span class="sy0">;</span></pre>
<p>
The erase method either deletes the element at location <code>loc</code>, or deletes the elements between <code>start</code> and <code>end</code> (including <code>start</code> but not including <code>end</code>). The return value is the element after the last element erased.
</p>

<p>
The first version of erase (the version that deletes a single element at location <code>loc</code>) runs in <a href="../../complexity.html" class="wikilink1" title="complexity">constant time</a>.  The multiple-element version of erase always takes <a href="../../complexity.html" class="wikilink1" title="complexity">linear time</a>.
</p>

<p>
Lists have the important property that insertion and splicing do not invalidate iterators to list elements, and that even removal invalidates only the iterators that point to the elements that are removed.
</p>

<p>
The ordering of iterators may be changed (that is, list&lt;T&gt;::iterator might have a different predecessor or successor after a list operation than it did before), but the iterators themselves will not be invalidated or made to point to different elements unless that invalidation or mutation is explicit.
</p>

<p>

For example:
</p>
<pre class="c code c++" style="font-family:monospace;">   <span class="co1">// Create a list, load it with the first ten characters of the alphabet</span>
   list<span class="sy0">&lt;</span>char<span class="sy0">&gt;</span> alphaList<span class="sy0">;</span>
   <span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw4">int</span> i<span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
     <span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> letters<span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;ABCDEFGHIJ&quot;</span><span class="sy0">;</span>
     alphaList.<span class="me1">push_back</span><span class="br0">&#40;</span> letters<span class="br0">&#91;</span>i<span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
   <span class="br0">&#125;</span>
   <span class="kw4">int</span> size <span class="sy0">=</span> alphaList.<span class="me1">size</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
   list<span class="sy0">&lt;</span>char<span class="sy0">&gt;::</span><span class="me2">iterator</span> startIterator<span class="sy0">;</span>
   list<span class="sy0">&lt;</span>char<span class="sy0">&gt;::</span><span class="me2">iterator</span> tempIterator<span class="sy0">;</span>
   <span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw4">int</span> i<span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> size<span class="sy0">;</span> i<span class="sy0">++</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
     startIterator <span class="sy0">=</span> alphaList.<span class="me1">begin</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
     alphaList.<span class="me1">erase</span><span class="br0">&#40;</span> startIterator <span class="br0">&#41;</span><span class="sy0">;</span>
     <span class="co1">// Display the list</span>
     copy<span class="br0">&#40;</span> alphaList.<span class="me1">begin</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> alphaList.<span class="me1">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> ostream_iterator<span class="sy0">&lt;</span>char<span class="sy0">&gt;</span><span class="br0">&#40;</span><a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a><span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
     <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a> <span class="sy0">&lt;&lt;</span> endl<span class="sy0">;</span>
   <span class="br0">&#125;</span></pre>
<p>
That code would display the following output:
</p>
<pre class="code">
   BCDEFGHIJ
   CDEFGHIJ
   DEFGHIJ
   EFGHIJ
   FGHIJ
   GHIJ
   HIJ
   IJ
   J</pre>
<p>
In the next example, erase() is called with two iterators to delete a range of
elements from a list:
</p>
<pre class="c code c++" style="font-family:monospace;">   <span class="co1">// create a list, load it with the first ten characters of the alphabet</span>
   list<span class="sy0">&lt;</span>char<span class="sy0">&gt;</span> alphaList<span class="sy0">;</span>
   <span class="kw1">for</span><span class="br0">&#40;</span> <span class="kw4">int</span> i<span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
     <span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> letters<span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;ABCDEFGHIJ&quot;</span><span class="sy0">;</span>
     alphaList.<span class="me1">push_back</span><span class="br0">&#40;</span> letters<span class="br0">&#91;</span>i<span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
   <span class="br0">&#125;</span>
   <span class="co1">// display the complete list</span>
   copy<span class="br0">&#40;</span> alphaList.<span class="me1">begin</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> alphaList.<span class="me1">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> ostream_iterator<span class="sy0">&lt;</span>char<span class="sy0">&gt;</span><span class="br0">&#40;</span><a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a><span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
   <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a> <span class="sy0">&lt;&lt;</span> endl<span class="sy0">;</span>
&nbsp;
   <span class="co1">// use erase to remove all but the first two and last three elements</span>
   <span class="co1">// of the list</span>
   alphaList.<span class="me1">erase</span><span class="br0">&#40;</span> advance<span class="br0">&#40;</span>alphaList.<span class="me1">begin</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span>2<span class="br0">&#41;</span><span class="sy0">,</span> advance<span class="br0">&#40;</span>alphaList.<span class="me1">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,-</span>3<span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
   <span class="co1">// display the modified list</span>
   copy<span class="br0">&#40;</span> alphaList.<span class="me1">begin</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> alphaList.<span class="me1">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> ostream_iterator<span class="sy0">&lt;</span>char<span class="sy0">&gt;</span><span class="br0">&#40;</span><a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a><span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
   <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a> <span class="sy0">&lt;&lt;</span> endl<span class="sy0">;</span></pre>
<p>
When run, the above code displays:
</p>
<pre class="code">
   ABCDEFGHIJ
   ABHIJ</pre>
<p>

Related Topics: <a href="../../stl/list/clear.html" class="wikilink1" title="stl:list:clear">clear</a>, <a href="../../stl/list/insert.html" class="wikilink1" title="stl:list:insert">insert</a>, <a href="../../stl/list/pop_back.html" class="wikilink1" title="stl:list:pop_back">pop_back</a>, <a href="../../stl/list/pop_front.html" class="wikilink1" title="stl:list:pop_front">pop_front</a>, <a href="../../stl/list/remove.html" class="wikilink1" title="stl:list:remove">remove</a>, <a href="../../stl/list/remove_if.html" class="wikilink1" title="stl:list:remove_if">remove_if</a>
</p>

</div>
<div class="secedit"><form class="button btn_secedit" method="post" action="/wiki/stl/list/erase"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="lines" value="3-" /><input type="hidden" name="rev" value="1262629431" /><input type="submit" value="Edit" class="button" title="erase" /></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/list/erase.txt &middot; Last modified: 01/04/2010 10:23 by rsalz      </div>
      -->
    </div>

   
    <div class="bar" id="bar__bottom">
      <div class="bar-left" id="bar__bottomleft">
        <a href="../../stl/list/erase.html"  class="action edit" accesskey="e" rel="nofollow">Edit this page</a> &#149;
        <a href="../../stl/list/erase.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/list/erase.html"  class="action login" rel="nofollow">Login</a> &#149;
        <a href="../../stl/list/erase.html"  class="action index" accesskey="x" rel="nofollow">Index</a> &#149;
        <a href="../../stl/list/erase.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%3Alist%3Aerase&amp;1273197640" width="1" height="1" alt=""  /></div>
</body>
</html>