<!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"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libstdc++: std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference > Struct Template Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">libstdc++</div> </td> </tr> </tbody> </table> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('a00260.html',''); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> </div> <div class="headertitle"> <div class="title">std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference > Struct Template Reference<div class="ingroups"><a class="el" href="a01201.html">Iterators</a></div></div> </div> </div> <div class="contents"> <!-- doxytag: class="std::iterator" --> <p>Common iterator class. <a href="a00260.html#details">More...</a></p> <div class="dynheader"> Inheritance diagram for std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >:</div> <div class="dyncontent"> <div class="center"><img src="a02191.png" border="0" usemap="#std_1_1iterator_3_01___category_00_01___tp_00_01___distance_00_01___pointer_00_01___reference_01_4_inherit__map" alt="Inheritance graph"/></div> <map name="std_1_1iterator_3_01___category_00_01___tp_00_01___distance_00_01___pointer_00_01___reference_01_4_inherit__map" id="std_1_1iterator_3_01___category_00_01___tp_00_01___distance_00_01___pointer_00_01___reference_01_4_inherit__map"> <area shape="rect" id="node3" href="a00260.html" title="std::iterator\< output_iterator_tag, void, void, void, void \>" alt="" coords="1928,165,2248,195"/><area shape="rect" id="node17" href="a00260.html" title="std::iterator\< std::output_iterator_tag, void, void, void, void \>" alt="" coords="1917,219,2259,248"/><area shape="rect" id="node19" href="a00260.html" title="std::iterator\< std::random_access_iterator_tag, bool \>" alt="" coords="1933,272,2243,301"/><area shape="rect" id="node21" href="a00260.html" title="std::iterator\< input_iterator_tag, _Tp, _Dist, const _Tp *, const _Tp & \>" alt="" coords="1891,325,2285,355"/><area shape="rect" id="node25" href="a00260.html" title="std::iterator\< input_iterator_tag, _CharT, _Traits::off_type, _CharT *, _CharT & \>" alt="" coords="1863,379,2313,408"/><area shape="rect" id="node29" href="a00260.html" title="std::iterator\< std::random_access_iterator_tag, _CharT \>" alt="" coords="1925,432,2251,461"/><area shape="rect" id="node31" href="a00260.html" title="std::iterator\< iterator_traits\< _Iterator \>::iterator_category, iterator_traits\< _Iterator \>::value_type, iterator_traits\< _Iterator \>::difference_type, iterator_traits\< _Iterator \>::pointer, iterator_traits\< _Iterator \>::reference \>" alt="" coords="1507,485,2669,515"/><area shape="rect" id="node5" href="a00388.html" title="Turns assignment into insertion." alt="" coords="2752,5,2984,35"/><area shape="rect" id="node7" href="a00477.html" title="Turns assignment into insertion." alt="" coords="2753,59,2983,88"/><area shape="rect" id="node9" href="a00526.html" title="Turns assignment into insertion." alt="" coords="2768,112,2968,141"/><area shape="rect" id="node11" href="a00644.html" title="Provides output iterator semantics for streams." alt="" coords="2736,165,3000,195"/><area shape="rect" id="node13" href="a00645.html" title="Provides output iterator semantics for streambufs." alt="" coords="2741,219,2995,248"/><area shape="rect" id="node15" href="a00678.html" title="std::raw_storage_iterator\< _OutputIterator, _Tp \>" alt="" coords="2725,272,3011,301"/><area shape="rect" id="node23" href="a00572.html" title="Provides input iterator semantics for streams." alt="" coords="2721,325,3015,355"/><area shape="rect" id="node27" href="a00573.html" title="Provides input iterator semantics for streambufs." alt="" coords="2743,379,2993,408"/><area shape="rect" id="node33" href="a00693.html" title="std::reverse_iterator\< _Iterator \>" alt="" coords="2771,485,2965,515"/></map> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <p><a href="a02192.html">List of all members.</a></p> <h2><a name="pub-types"></a> Public Types</h2> <ul> <li>typedef _Distance <a class="el" href="a00260.html#a7fc5091a6bee76d7bfc6ece04e4050f9">difference_type</a> <li>typedef _Category <a class="el" href="a00260.html#a3d32527bfebba5c0459df1390cef50a9">iterator_category</a> <li>typedef _Pointer <a class="el" href="a00260.html#a69bffe0bd881194df5ff48fec79066de">pointer</a> <li>typedef _Reference <a class="el" href="a00260.html#abb17838f15d32971ad823036c6593aef">reference</a> <li>typedef _Tp <a class="el" href="a00260.html#af9f36b7adb257959eef192b9282f1284">value_type</a> </ul> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><h3>template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&><br/> struct std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference ></h3> <p>Common iterator class. </p> <p>This class does nothing but define nested typedefs. Iterator classes can inherit from this class to save some work. The typedefs are then used in specializations and overloading.</p> <p>In particular, there are no default implementations of requirements such as <code>operator++</code> and the like. (How could there be?) </p> <p>Definition at line <a class="el" href="a01054_source.html#l00119">119</a> of file <a class="el" href="a01054_source.html">stl_iterator_base_types.h</a>.</p> </div><hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="a7fc5091a6bee76d7bfc6ece04e4050f9"></a><!-- doxytag: member="std::iterator::difference_type" ref="a7fc5091a6bee76d7bfc6ece04e4050f9" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&> </div> <table class="memname"> <tr> <td class="memname">typedef _Distance <a class="el" href="a00260.html">std::iterator</a>< _Category, _Tp, _Distance, _Pointer, _Reference >::<a class="el" href="a00260.html#a7fc5091a6bee76d7bfc6ece04e4050f9">difference_type</a></td> </tr> </table> </div> <div class="memdoc"> <p>Distance between iterators is represented as this type. </p> <p>Reimplemented in <a class="el" href="a00693.html#a51a2097039f9d97ba6a0efa7d3172ad9">std::reverse_iterator< _Iterator ></a>.</p> <p>Definition at line <a class="el" href="a01054_source.html#l00126">126</a> of file <a class="el" href="a01054_source.html">stl_iterator_base_types.h</a>.</p> </div> </div> <a class="anchor" id="a3d32527bfebba5c0459df1390cef50a9"></a><!-- doxytag: member="std::iterator::iterator_category" ref="a3d32527bfebba5c0459df1390cef50a9" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&> </div> <table class="memname"> <tr> <td class="memname">typedef _Category <a class="el" href="a00260.html">std::iterator</a>< _Category, _Tp, _Distance, _Pointer, _Reference >::<a class="el" href="a00260.html#a3d32527bfebba5c0459df1390cef50a9">iterator_category</a></td> </tr> </table> </div> <div class="memdoc"> <p>One of the <a class="el" href="a01202.html">tag types</a>. </p> <p>Definition at line <a class="el" href="a01054_source.html#l00122">122</a> of file <a class="el" href="a01054_source.html">stl_iterator_base_types.h</a>.</p> </div> </div> <a class="anchor" id="a69bffe0bd881194df5ff48fec79066de"></a><!-- doxytag: member="std::iterator::pointer" ref="a69bffe0bd881194df5ff48fec79066de" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&> </div> <table class="memname"> <tr> <td class="memname">typedef _Pointer <a class="el" href="a00260.html">std::iterator</a>< _Category, _Tp, _Distance, _Pointer, _Reference >::<a class="el" href="a00260.html#a69bffe0bd881194df5ff48fec79066de">pointer</a></td> </tr> </table> </div> <div class="memdoc"> <p>This type represents a pointer-to-value_type. </p> <p>Reimplemented in <a class="el" href="a00693.html#a402f43603e3e2a5b4e51decb65b22bdf">std::reverse_iterator< _Iterator ></a>.</p> <p>Definition at line <a class="el" href="a01054_source.html#l00128">128</a> of file <a class="el" href="a01054_source.html">stl_iterator_base_types.h</a>.</p> </div> </div> <a class="anchor" id="abb17838f15d32971ad823036c6593aef"></a><!-- doxytag: member="std::iterator::reference" ref="abb17838f15d32971ad823036c6593aef" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&> </div> <table class="memname"> <tr> <td class="memname">typedef _Reference <a class="el" href="a00260.html">std::iterator</a>< _Category, _Tp, _Distance, _Pointer, _Reference >::<a class="el" href="a00260.html#abb17838f15d32971ad823036c6593aef">reference</a></td> </tr> </table> </div> <div class="memdoc"> <p>This type represents a reference-to-value_type. </p> <p>Reimplemented in <a class="el" href="a00693.html#a4353b0f0942efe2b252347536000a558">std::reverse_iterator< _Iterator ></a>.</p> <p>Definition at line <a class="el" href="a01054_source.html#l00130">130</a> of file <a class="el" href="a01054_source.html">stl_iterator_base_types.h</a>.</p> </div> </div> <a class="anchor" id="af9f36b7adb257959eef192b9282f1284"></a><!-- doxytag: member="std::iterator::value_type" ref="af9f36b7adb257959eef192b9282f1284" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&> </div> <table class="memname"> <tr> <td class="memname">typedef _Tp <a class="el" href="a00260.html">std::iterator</a>< _Category, _Tp, _Distance, _Pointer, _Reference >::<a class="el" href="a00260.html#af9f36b7adb257959eef192b9282f1284">value_type</a></td> </tr> </table> </div> <div class="memdoc"> <p>The type "pointed to" by the iterator. </p> <p>Definition at line <a class="el" href="a01054_source.html#l00124">124</a> of file <a class="el" href="a01054_source.html">stl_iterator_base_types.h</a>.</p> </div> </div> <hr/>The documentation for this struct was generated from the following file:<ul> <li><a class="el" href="a01054_source.html">stl_iterator_base_types.h</a></li> </ul> </div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="a01137.html">std</a> </li> <li class="navelem"><a class="el" href="a00260.html">iterator</a> </li> <li class="footer">Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li> </ul> </div> </body> </html>