VMS Help
CXXLSTD, Iterators, Random Access Iterators

 *Conan The Librarian

 			   Standard C++	Library
 		 Copyright 1996, Rogue Wave Software, Inc.

 NAME

   Random_Access_Iterators  - An	iterator that reads and	writes,	and
   provides random access	to a container.

 DESCRIPTION

   For a	complete discussion of iterators, see the Iterators section of
   this reference.

   Iterators are	a generalization of pointers that allow	a C++ program
   to uniformly interact with different data structures.  Random
   access iterators can read and write, and provide random access
   to the containers they serve. These	iterators satisfy the
   requirements listed below.

 KEY TO ITERATOR	REQUIREMENTS

   The following	key pertains to	the iterator requirements listed
   below:

   a and	b   values of type X

   n   value of distance	type

   u, Distance, tmp and m   identifiers

   r   value of type X&

   t   value of type T

 REQUIREMENTS FOR RANDOM	ACCESS ITERATORS

   The following	expressions must be valid for random access iterators:

   X u	u might	have a singular	value

   X()	X() might be singular

   X(a)	 copy constructor, a ==	X(a).

   X u(a)   copy	constructor, u == a

   X u =	a   assignment,	u == a

   a == b, a != b   return value	convertible to bool

   *a   return value convertible	to T&

   a->m	 equivalent to (*a).m

   ++r	returns	X&

   r++	return value convertible to const X&

   *r++	 returns T&

   --r	returns	X&

   r--	return value convertible to const X&

   *r--	 returns T&

   r += n   Semantics of	--r or ++r n times depending on	the sign
            of n

   a + n, n + a	 returns type X

   r -= n   returns X&, behaves as r += -n

   a - n	  returns type X

   b - a	  returns Distance

   a[n]	 *(a+n), return	value convertible to T

   a < b	  total	ordering relation

   a > b	  total	ordering relation opposite to <

   a <= b   !(a < b)

   a >= b   !(a > b)

   Like forward iterators, random access	iterators have the condition
   that  a == b implies *a == *b.

   There	are no restrictions on the number of passes an algorithm may
   make through the structure.

   All relational operators return a value convertible to bool.

 SEE ALSO

   Iterators, Forward Iterators,	Bidirectional Iterators

 STANDARDS CONFORMANCE
   ANSI X3J16/ISO WG21 Joint C++	Committee
  Close     Help