<!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>
end [C++ Reference]
</title>
<meta name="generator" content="DokuWiki Release 2009-12-25c "Lemming"" />
<meta name="robots" content="index,follow" />
<meta name="date" content="2009-10-10T07:35:55-0700" />
<meta name="keywords" content="stl,vector,end" />
<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/vector/end?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&ns=stl:vector" />
<link rel="edit" title="Edit this page" href="/wiki/stl/vector/end?do=edit" />
<link rel="alternate" type="text/html" title="Plain HTML" href="/wiki/_export/xhtml/stl/vector/end" />
<link rel="alternate" type="text/plain" title="Wiki Markup" href="/wiki/_export/raw/stl/vector/end" />
<link rel="canonical" href="http://www.cppreference.com/wiki/stl/vector/end" />
<link rel="stylesheet" media="all" type="text/css" href="/wiki/lib/exe/css.php?s=all&t=custom1&tseed=1272971091" />
<link rel="stylesheet" media="screen" type="text/css" href="/wiki/lib/exe/css.php?t=custom1&tseed=1272971091" />
<link rel="stylesheet" media="print" type="text/css" href="/wiki/lib/exe/css.php?s=print&t=custom1&tseed=1272971091" />
<script type="text/javascript" charset="utf-8" ><!--//--><![CDATA[//><!--
var NS='stl:vector';var JSINFO = {"id":"stl:vector:end","namespace":"stl:vector"};
//--><!]]></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/vector/end.html" title="Backlinks">end</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> » <a href="../../stl/start.html" title="stl:start">C++ Standard Template Library</a> » <a href="../../stl/vector/start.html" title="stl:vector:start">C++ Vectors</a> » <a href="../../stl/vector/end.html" title="stl:vector:end">end</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/vector/end.html" class="wikilink1" title="stl:vector:end">en</a></span></div></li> <li><div class="li"><a href="../../br-pt/stl/vector/end.html" class="wikilink2" title="br-pt:stl:vector:end" rel="nofollow">br-pt</a></div></li> <li><div class="li"><a href="../../cn/stl/vector/end.html" class="wikilink2" title="cn:stl:vector:end" rel="nofollow">cn</a></div></li> <li><div class="li"><a href="../../cz/stl/vector/end.html" class="wikilink2" title="cz:stl:vector:end" rel="nofollow">cz</a></div></li> <li><div class="li"><a href="../../de/stl/vector/end.html" class="wikilink2" title="de:stl:vector:end" rel="nofollow">de</a></div></li> <li><div class="li"><a href="../../es/stl/vector/end.html" class="wikilink2" title="es:stl:vector:end" rel="nofollow">es</a></div></li> <li><div class="li"><a href="../../fr/stl/vector/end.html" class="wikilink1" title="fr:stl:vector:end">fr</a></div></li> <li><div class="li"><a href="../../it/stl/vector/end.html" class="wikilink1" title="it:stl:vector:end">it</a></div></li> <li><div class="li"><a href="../../jp/stl/vector/end.html" class="wikilink2" title="jp:stl:vector:end" rel="nofollow">jp</a></div></li> <li><div class="li"><a href="../../nl/stl/vector/end.html" class="wikilink2" title="nl:stl:vector:end" rel="nofollow">nl</a></div></li> <li><div class="li"><a href="../../pl/stl/vector/end.html" class="wikilink2" title="pl:stl:vector:end" rel="nofollow">pl</a></div></li> <li><div class="li"><a href="../../ro/stl/vector/end.html" class="wikilink2" title="ro:stl:vector:end" rel="nofollow">ro</a></div></li> <li><div class="li"><a href="../../ru/stl/vector/end.html" class="wikilink1" title="ru:stl:vector:end">ru</a></div></li> <li><div class="li"><a href="../../sk/stl/vector/end.html" class="wikilink2" title="sk:stl:vector:end" rel="nofollow">sk</a></div></li> <li><div class="li"><a href="../../tr/stl/vector/end.html" class="wikilink2" title="tr:stl:vector:end" rel="nofollow">tr</a></div></li> <li><div class="li"><a href="../../tw/stl/vector/end.html" class="wikilink2" title="tw:stl:vector:end" 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="end" id="end">end</a></h2>
<div class="level2">
<p>
Syntax:
</p>
<pre class="c code c++" style="font-family:monospace;"> <span class="co2">#include <vector></span>
iterator end<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
const_iterator end<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy0">;</span></pre>
<p>
The end() function returns an iterator just past the end of the vector.
Note that before you can access the last element of the vector using an
iterator that you get from a call to end(), you'll have to decrement the
iterator first. This is because end() doesn't point to the end of the vector;
it points just past the end of the vector.
</p>
<p>
For example, in the following code, the result of the first “cout” statement is <code>undefined</code>, whereas the second statement will actually display the last element of
the vector:
</p>
<pre class="c code c++" style="font-family:monospace;"> vector<span class="sy0"><</span>int<span class="sy0">></span> v1<span class="sy0">;</span>
v1.<span class="me1">push_back</span><span class="br0">(</span> 0 <span class="br0">)</span><span class="sy0">;</span>
v1.<span class="me1">push_back</span><span class="br0">(</span> 1 <span class="br0">)</span><span class="sy0">;</span>
v1.<span class="me1">push_back</span><span class="br0">(</span> 2 <span class="br0">)</span><span class="sy0">;</span>
v1.<span class="me1">push_back</span><span class="br0">(</span> 3 <span class="br0">)</span><span class="sy0">;</span>
<span class="kw4">int</span> bad_val <span class="sy0">=</span> <span class="sy0">*</span><span class="br0">(</span>v1.<span class="me1">end</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</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"><<</span> <span class="st0">"bad_val is "</span> <span class="sy0"><<</span> bad_val <span class="sy0"><<</span> endl<span class="sy0">;</span>
<span class="kw4">int</span> good_val <span class="sy0">=</span> <span class="sy0">*</span><span class="br0">(</span>v1.<span class="me1">end</span><span class="br0">(</span><span class="br0">)</span> <span class="sy0">-</span> 1<span class="br0">)</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"><<</span> <span class="st0">"good_val is "</span> <span class="sy0"><<</span> good_val <span class="sy0"><<</span> endl<span class="sy0">;</span></pre>
<p>
The next example shows how begin() and end() can be used to iterate through all
of the members of a vector.
</p>
<pre class="c code c++" style="font-family:monospace;"> vector<span class="sy0"><</span>int<span class="sy0">></span> v1<span class="br0">(</span> 3<span class="sy0">,</span> 5 <span class="br0">)</span><span class="sy0">;</span>
<span class="kw1">for</span><span class="br0">(</span> vector<span class="sy0"><</span>int<span class="sy0">>::</span><span class="me2">const_iterator</span> it <span class="sy0">=</span> v1.<span class="me1">begin</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
it <span class="sy0">!=</span> v1.<span class="me1">end</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="sy0">++</span>it <span class="br0">)</span> <span class="br0">{</span>
<a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a> <span class="sy0"><<</span> <span class="sy0">*</span>it <span class="sy0"><<</span> endl<span class="sy0">;</span>
<span class="br0">}</span></pre>
<p>
The iterator is initialized with a call to begin(). After the body of the loop
has been executed, the iterator is incremented and tested to see if it is equal
to the result of calling end(). Since end() returns an iterator pointing to an
element just after the last element of the vector, the loop will only stop once
all of the elements of the vector have been displayed.
</p>
<p>
end() runs in <a href="../../complexity.html" class="wikilink1" title="complexity">constant time</a>.
</p>
<p>
Related Topics: <a href="../../stl/vector/begin.html" class="wikilink1" title="stl:vector:begin">begin</a>, <a href="../../stl/vector/rbegin.html" class="wikilink1" title="stl:vector:rbegin">rbegin</a>, <a href="../../stl/vector/rend.html" class="wikilink1" title="stl:vector:rend">rend</a>
</p>
</div>
<div class="secedit"><form class="button btn_secedit" method="post" action="/wiki/stl/vector/end"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="lines" value="3-" /><input type="hidden" name="rev" value="1255185355" /><input type="submit" value="Edit" class="button" title="end" /></div></form></div>
<!-- wikipage stop -->
</div>
<div class="clearer"> </div>
<div class="stylefoot">
<div class="meta">
<div class="user">
</div>
<!--
<div class="doc">
stl/vector/end.txt · Last modified: 10/10/2009 07:35 by 124.255.102.233 </div>
-->
</div>
<div class="bar" id="bar__bottom">
<div class="bar-left" id="bar__bottomleft">
<a href="../../stl/vector/end.html" class="action edit" accesskey="e" rel="nofollow">Edit this page</a> •
<a href="../../stl/vector/end.html" class="action revisions" accesskey="o" rel="nofollow">Old revisions</a> </div>
<div class="bar-right" id="bar__bottomright">
•
•
•
<a href="../../stl/vector/end.html" class="action login" rel="nofollow">Login</a> •
<a href="../../stl/vector/end.html" class="action index" accesskey="x" rel="nofollow">Index</a> •
<a href="../../stl/vector/end.html" class="action recent" accesskey="r" rel="nofollow">Recent changes</a> •
<a href="../../feed.php.html" title="Recent changes RSS feed">RSS</a> •
<a href='http://creativecommons.org/licenses/by/3.0/us/' title='Creative Commons license'>cc</a> •
<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>
</div>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="no"><img src="/wiki/lib/exe/indexer.php?id=stl%3Avector%3Aend&1273197124" width="1" height="1" alt="" /></div>
</body>
</html>