Let's look at the weakest first.
The weakest allows you to read and only look at information once.
Read in a single pass, what could that mean.
Think of an input file. Input files are used for reading
and if you read through them you get to the end of file and then you're done The
cursor goes away. The second
weakest, which is very similar, is for output.
Now, output, you can write to the file, so the file can be modified.
But again, a single pass.
The third weakest, sort of intermediary, is forward.
In a forward iterator, you can read and write, so you can do both operations, so
you have more operations. But, you can also act on it.
The file
doesn't disappear on you.
It can be used multi, multi-pass, so the construct you're
operating on, like vector or a list, is staying there.
I'm like thinking of a file, that file read that disappears on you.
So it can be multi-pass but it's one directional that's what I
mean by 1D, I don't mean one dimensional, I mean one direction.
Bidirectional, which we saw in that little diagram is again more, more sophisticated.
Multi-pass is allowed, and you can go to
a previous element as well as the next element.
And finally, random access is strongest 'because you can go on it, anywhere, and
you can go anywhere, in what, is known in analysis of algorithms in order one.
You can do an address computation anywhere into, what is,