diff --git a/doc/iterator_concept.htm b/doc/iterator_concept.htm index e1c677a2..1b681fa0 100644 --- a/doc/iterator_concept.htm +++ b/doc/iterator_concept.htm @@ -604,86 +604,86 @@ must be valid.

Default constructor -I1 it1 +I1 it     Dereference -*it1 +*it   Convertible to T. Dereference assignment -*it1 = t +*it = t I1 is mutable.   Member access -it1->m +it->m T is a type for which t.m is defined.   Preincrement -++ it1 +++ it   I1 & Postincrement -it1 ++ +it ++   I1 Predecrement --- it1 +-- it   I1 & Postdecrement -it1 -- +it --   I1 Row Index -it1.index1 () +it.index1 ()   C::size_type Column Index -it1.index2 () +it.index2 ()   C::size_type Row/Column Begin -it1.begin () +it.begin ()   I2 Row/Column End -it1.end () +it.end ()   I2 Reverse Row/Column Begin -it1.rbegin () +it.rbegin ()   reverse_iterator<I2> Reverse Row/Column End -it1.rend () +it.rend ()   reverse_iterator<I2> @@ -704,174 +704,155 @@ Default Constructible.

Default constructor -I1 it1 +I1 it     -it1 is singular. +it is singular. Dereference -*it1 -it1 is dereferenceable. +*it +it is dereferenceable.     Dereference assignment -*it1 = t -Same as for *it1. +*it = t +Same as for *it.   -*it1 is a copy of t. +*it is a copy of t. Member access -it1->m -it1 is dereferenceable. -Equivalent to (*it1).m +it->m +it is dereferenceable. +Equivalent to (*it).m   Preincrement -++ it1 -it1 is dereferenceable. -it1 is modified to point to the next element of +++ it +it is dereferenceable. +it is modified to point to the next element of the column/row, i.e. for column iterators holds
-it1.index1 () < (++ it1).index1 () and
-it1.index2 () == (++ it1).index2 (),
+it.index1 () < (++ it).index1 () and
+it.index2 () == (++ it).index2 (),
for row iterators holds
-it1.index1 () == (++ it1).index1 () and
-it1.index2 () < (++ it1).index2 ().
-it1 is dereferenceable or past-the-end. +it.index1 () == (++ it).index1 () and
+it.index2 () < (++ it).index2 ().
+it is dereferenceable or past-the-end.
-&it1 == &++ it1
.
-If it11 == it12,
-then ++ it11 == ++ it12. +&it == &++ it.
+If it1 == it2,
+then ++ it1 == ++ it2. Postincrement -it1 ++ -Same as for ++ it1. +it ++ +Same as for ++ it. Equivalent to
{
- I1 it1t = it1;
- ++ it1;
- return it1t;
+ I1 itt = it;
+ ++ it;
+ return itt;
}
-it1 is dereferenceable or past-the-end. +it is dereferenceable or past-the-end. Predecrement --- it1 -it1 is dereferenceable or past-the-end.
-There exists a dereferenceable iterator it1t such that -it1 == ++ it1t. -it1 is modified to point to the previous  +-- it +it is dereferenceable or past-the-end.
+There exists a dereferenceable iterator itt such that +it == ++ itt. +it is modified to point to the previous  element of the column/row, i.e. for column iterators holds
-it1.index1 () > (-- it1).index1 () and
-it1.index2 () == (-- it1).index2 (),
+it.index1 () > (-- it).index1 () and
+it.index2 () == (-- it).index2 (),
for row iterators holds
-it1.index1 () == (-- it1).index1 () and
-it1.index2 () > (-- it1).index2 (). -it1 is dereferenceable.
-&it1 = &-- it1.
-If it11 == it12,
-then -- it11 == -- it12. +it.index1 () == (-- it).index1 () and
+it.index2 () > (-- it).index2 (). +it is dereferenceable.
+&it = &-- it.
+If it1 == it2,
+then -- it1 == -- it2. Postdecrement -it1 -- -Same as for -- it1. +it -- +Same as for -- it. Equivalent to
{
- I1 it1t = it1;
- -- it1;
- return it1t;
+ I1 itt = it;
+ -- it;
+ return itt;
}
-it1 is dereferenceable.  +it is dereferenceable.  Row Index -it1.index1 () -it1 is dereferenceable. -it1.index1 () >= 0 and
-it1.index1 () < it () .size1 () -If it11 == it12,
-then it11.index1 () == it12.index1 () -.
-If it11, it12 are Indexed Bidirectional -Row Iterators with it11 == it12,
-then it11.index1 () < (++ it12).index1 -().
-If it11, it12 are Indexed Bidirectional -Row Iterators with it11 == it12,
-then it11.index1 () > (-- it12).index1 -(). +it.index1 () +If it is a Row iterator then it must be dereferenceable. +it.index1 () >= 0 and
+it.index1 () < it () .size1 () +If it1 == it2,
+then it1.index1 () == 12.index1 ().
+If it1, it2 are Row Iterators with it1 == it2,
+then it1.index1 () < (++ it2).index1 ().
+and it1.index1 () > (-- it2).index1 (). Column Index -it1.index2 () -it1 is dereferenceable. -it1.index2 () >= 0 and
-it1.index2 () < it () .size2 () -If it11 == it12,
-then it11.index2 () == it12.index2 () +it.index2 () +If it is a Column iterator then it must be dereferenceable. +it.index2 () >= 0 and
+it.index2 () < it () .size2 () +If it1 == it2,
+then it1.index2 () == it2.index2 () .
-If it11, it12 are Indexed Bidirectional -Column Iterators with it11 == it12,
-then it11.index2 () < (++ it12).index2 -().
-If it11, it12 are Indexed Bidirectional -Column Iterators with it11 == it12,
-then it11.index2 () > (-- it12).index2 -(). +If it1, it2 are Column Iterators with it1 == i12,
+then it1.index2 () < (++ it2).index2 ().
+end it1.index2 () > (-- it2).index2 (). Row/Column Begin -it1.begin () -it1 is dereferenceable. -If it1 is a Indexed Bidirectional Column -Iterator,
-then it2 = it1.begin () is a Indexed Bidirectional Row -Iterator
-with it2.index1 () == it1.index1 (). -

If it1 is a Indexed Bidirectional Row -Iterator,
-then it2 = it1.begin () is a Indexed Bidirectional -Column Iterator
-with it2.index2 () == it1.index2 ().

+it.begin () +it is dereferenceable. +If it is a Column Iterator,
+then it2 = it.begin () is a Row Iterator
+with it2.index1 () == it.index1 (). +

If it is a Row Iterator,
+then it2 = it.begin () is a Column Iterator
+with it2.index2 () == it.index2 ().

  Row/Column End -it1.end () -it1 is dereferenceable. -If it1 is a Indexed Bidirectional Column -Iterator,
-then it2 = it1.end () is a Indexed Bidirectional Row -Iterator
-with it2.index1 () == it1.index1 (). -

If it1 is a Indexed Bidirectional Row -Iterator,
-then it2 = it1.end () is a Indexed Bidirectional -Column Iterator
-with it2.index2 () == it1.index2 ().

+it.end () +it is dereferenceable. +If it is a Column Iterator,
+then it2 = it.end () is a Row Iterator
+with it2.index1 () == it.index1 (). +

If it is a Row Iterator,
+then it2 = it.end () is a Column Iterator
+with it2.index2 () == it.index2 ().

  Reverse Row/Column Begin -it1.rbegin () -it1 is dereferenceable. -Equivalent to reverse_iterator<I2> (it1.end +it.rbegin () +it is dereferenceable. +Equivalent to reverse_iterator<I2> (it.end ()).   Reverse Row/Column End -it1.rend () -it1 is dereferenceable. -Equivalent to reverse_iterator<I2> (it1.begin +it.rend () +it is dereferenceable. +Equivalent to reverse_iterator<I2> (it.begin ()).   @@ -890,31 +871,31 @@ the first row/first column respectively.

Identity -it11 == it12 if and only if &*it11 == -&*it12. +it1 == it2 if and only if &*it1 == +&*it2. Symmetry of increment and decrement -If it1 is dereferenceable, then ++ it1; ---it1; is a null operation. Similarly, -- it1; ++ -it1; is a null operation. +If it is dereferenceable, then ++ it; +--it; is a null operation. Similarly, -- it; ++ +it; is a null operation. Relation between iterator index and container element operator -If it1 is dereferenceable, *it1 == it1 () -(it1.index1 (), it2.index2 ()) +If it is dereferenceable, *it == it () +(it.index1 (), it.index2 ()) Relation between iterator column/row begin and iterator index -If it1 is a Indexed Bidirectional Column Iterator -and it2 = it1.begin () then it2.index2 () < +If it is a Column Iterator +and it2 = it.begin () then it2.index2 () < it2t.index2 () for all it2t with it2t () == it2 () and it2t ().index1 () == it2 ().index1 (). -

If it1 is a Indexed Bidirectional Row Iterator and -it2 = it1.begin () then it2.index1 () < +

If it is a Row Iterator and +it2 = it.begin () then it2.index1 () < it2t.index1 () for all it2t with it2t () == it2 () and it2t ().index2 () == it2 ().index2 ().

@@ -923,13 +904,13 @@ it2t.index1 () for all it2t with it2t () Relation between iterator column/row end and iterator index -If it1 is a Indexed Bidirectional Column Iterator -and it2 = it1.end () then it2.index2 () > +If it is a Column Iterator +and it2 = it.end () then it2.index2 () > it2t.index2 () for all it2t with it2t () == it2 () and it2t ().index1 () == it2 ().index1 (). -

If it1 is a Indexed Bidirectional Row Iterator and -it2 = it1.end () then it2.index1 () > +

If it is a Row Iterator and +it2 = it.end () then it2.index1 () > it2t.index1 () for all it2t with it2t () == it2 () and it2t ().index2 () == it2 ().index2 ().