This class should rarely be used, but is here to provide
a default implementation of sparseIterator(), which is implemented
by walking over the entries, skipping those that are zero.
Concrete subclasses which are SparseVector implementations should
make their own sparse iterator, rather than using this one.
This implementation might be useful for ArrayRealVector, when expensive
operations which preserve the default value are to be done on the entries,
and the fraction of non-default values is small (i.e. someone took a
SparseVector, and passed it into the copy-constructor of ArrayRealVector)