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;"