The illustration shows a code segment with the lines numbered from 1 through 24 and the annotations are as follows:
"//Program to demonstrate bidirectional and random access iterators.
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<char> container;
container.push_back('A');
container.push_back('B');
container.push_back('C');
container.push_back('D');
for (int i = 0; i < 4; i++)
cout << "container[" << i << "] == "
<< container[i] << endl;
vector<char>::iterator p = container.begin();" with the following part annotated as "Three different notations for the same thing."
"cout << "The third entry is " << container[2] << endl;" with the "container[2] highlighted and annotated as "This notation is specialized to vectors and arrays."
"cout << "The third entry is " << p[2] << endl;
cout << "The third entry is " << *(p + 2) << endl;" with “p[2]” and “*(p+2)” is highlighted and annotated as "These two work for any random access iterator."
"cout << "Back to container[0].\n";
p = container.begin();
cout << "which has value " << *p << endl;"