1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
|
<HTML>
<!--
-- Copyright (c) 1996-1999
-- Silicon Graphics Computer Systems, Inc.
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
--
-- Copyright (c) 1994
-- Hewlett-Packard Company
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Hewlett-Packard Company makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
--
-->
<Head>
<Title>bidirectional_iterator<T, Distance></Title>
<!-- Generated by htmldoc -->
</HEAD>
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
ALINK="#ff0000">
<IMG SRC="CorpID.gif"
ALT="SGI" HEIGHT="43" WIDTH="151">
<!--end header-->
<BR Clear>
<H1>bidirectional_iterator<T, Distance></H1>
<Table CellPadding=0 CellSpacing=0 width=100%>
<TR>
<TD Align=left><Img src = "iterators.gif" Alt="" WIDTH = "194" HEIGHT = "38" ></TD>
<TD Align=right><Img src = "type.gif" Alt="" WIDTH = "194" HEIGHT = "39" ></TD>
</TR>
<TR>
<TD Align=left VAlign=top><b>Category</b>: iterators</TD>
<TD Align=right VAlign=top><b>Component type</b>: type</TD>
</TR>
</Table>
<h3>Description</h3>
<tt>Bidirectional_iterator</tt> is an iterator base class: it is intended that an
iterator that is a model of <A href="BidirectionalIterator.html">Bidirectional Iterator</A>, and whose value type
and distance type are <tt>T</tt> and <tt>Distance</tt>, may be defined by inheriting from
<tt>bidirectional_iterator<T, Distance></tt> <A href="#1">[1]</A>. <tt>Bidirectional_iterator</tt> is entirely empty: it has no
member functions, member variables, or nested types. It exists solely
to simplify the definition of the functions <tt><A href="iterator_category.html">iterator_category</A></tt>,
<tt><A href="distance_type.html">distance_type</A></tt>, and <tt><A href="value_type.html">value_type</A></tt>.
<h3>Example</h3>
<pre>
class my_bidirectional_iterator : public bidirectional_iterator<double>
{
...
};
</pre>
This declares <tt>my_bidirectional_iterator</tt> to be a <A href="BidirectionalIterator.html">Bidirectional Iterator</A> whose
value type is <tt>double</tt> and whose distance type is <tt>ptrdiff_t</tt>.
If <tt>Iter</tt> is an object of class <tt>my_bidirectional_iterator</tt>, then
<tt><A href="iterator_category.html">iterator_category</A>(Iter)</tt> will return <tt><A href="bidirectional_iterator_tag.html">bidirectional_iterator_tag</A>()</tt>,
<tt><A href="value_type.html">value_type</A>(Iter)</tt> will return <tt>(double*) 0</tt>, and <tt><A href="distance_type.html">distance_type</A>(Iter)</tt>
will return <tt>(ptrdiff_t*) 0</tt>.
<h3>Definition</h3>
Defined in the standard header <A href="iterator">iterator</A>, and in the
nonstandard backward-compatibility header <A href="iterator.h">iterator.h</A>.
This class is no longer part of the C++ standard, although
it was present in early drafts of the standard. It is retained
in this implementation for backward compatibility.
<h3>Template parameters</h3>
<Table border>
<TR>
<TH>
Parameter
</TH>
<TH>
Description
</TH>
<TH>
Default
</TH>
</TR>
<TR>
<TD VAlign=top>
<tt>T</tt>
</TD>
<TD VAlign=top>
The iterator's value type
</TD>
<TD VAlign=top>
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>Distance</tt>
</TD>
<TD VAlign=top>
The iterator's distance type
</TD>
<TD VAlign=top>
<tt>ptrdiff_t</tt>
</TD>
</tr>
</table>
<h3>Model of</h3>
<A href="Assignable.html">Assignable</A>
<h3>Public base classes</h3>
None
<h3>Type requirements</h3>
The distance type must be a signed integral type.
<h3>Public base classes</h3>
None.
<h3>Members</h3>
None.
<h3>New Members</h3>
None.
<h3>Notes</h3>
<P><A name="1">[1]</A>
It is not required that a <A href="BidirectionalIterator.html">Bidirectional Iterator</A> inherit from
the base <tt>bidirectional_iterator</tt>. It is, however, required that the
functions <tt><A href="iterator_category.html">iterator_category</A></tt>, <tt><A href="distance_type.html">distance_type</A></tt>, and
<tt><A href="value_type.html">value_type</A></tt> be defined for every <A href="BidirectionalIterator.html">Bidirectional Iterator</A>.
(Or, if you are using the <tt><A href="iterator_traits.html">iterator_traits</A></tt> mechanism, that
<tt>iterator_traits</tt> is properly specialized for every
<A href="BidirectionalIterator.html">Bidirectional Iterator</A>.) Since those functions are defined for
the base <tt>bidirectional_iterator</tt>, the easiest way to ensure that are
defined for a new type is to derive that class from
<tt>bidirectional_iterator</tt> and rely on the derived-to-base standard
conversion of function arguments.
<h3>See also</h3>
The <A href="iterator_tags.html">Iterator Tags</A> overview, <tt><A href="iterator_traits.html">iterator_traits</A></tt>,
<tt><A href="iterator_category.html">iterator_category</A></tt>,
<tt><A href="value_type.html">value_type</A></tt>, <tt><A href="distance_type.html">distance_type</A></tt>,
<tt><A href="input_iterator.html">input_iterator</A></tt>, <tt><A href="output_iterator.html">output_iterator</A></tt>,
<tt><A href="forward_iterator.html">forward_iterator</A></tt>, <tt><A href="random_access_iterator.html">random_access_iterator</A></tt>
<!--start footer-->
<HR SIZE="6">
<A href="http://www.sgi.com/"><IMG SRC="surf.gif" HEIGHT="54" WIDTH="54"
ALT="[Silicon Surf]"></A>
<A HREF="index.html"><IMG SRC="stl_home.gif"
HEIGHT="54" WIDTH="54" ALT="[STL Home]"></A>
<BR>
<FONT SIZE="-2">
<A href="http://www.sgi.com/Misc/sgi_info.html" TARGET="_top">Copyright ©
1999 Silicon Graphics, Inc.</A> All Rights Reserved.</FONT>
<FONT SIZE="-3"><a href="http://www.sgi.com/Misc/external.list.html" TARGET="_top">TrademarkInformation</A>
</FONT>
<P>
</BODY>
</HTML>
|