Invariants

An algorithm that iterates through the range [m.begin1
(), m.end1 ()) will pass through every row of m
, an algorithm that iterates through the range [m.begin2 (),
m.end2 ()) will pass through every column of m
.

The distance from m.begin1 () to m.end1
() is the same as the distance from m.rbegin1
() to m.rend1 () and the distance from
m.begin2 () to m.end2 () is the same as
the distance from m.rbegin2 () to m.rend2
().