Initialize this iterator to access a data set in data . The
type of data is specific to the iterator implementation. An
iterator may also access some implicit data set, in which case
data isn't specified at all.
The iterator initially points to the first item in the data set,
if there is any.
The iterator does not need to support being reused, so this
function is typically declared protected
.