The constructor without parameters allocates no memory. Another constructor takes the number of entries in the vector as parameter and allocates memory for the corresponding vector representation. The third constructor takes a C array and its length and base index as parameters. This makes it easy for the vector to borrow its contents from an already existing C array. A new feature allows declaration of arrays with zero length.
Most member functions are self-explanatory.
This is necessary to ensure that the compiler issues an error message if const arrays are altered by the subscript operator. For example, construction of a toy program may be helpful in experimenting with const and non-const.