CS253: Software Development with C++

Fall 2019

Container

Container Lab

Description

The files for this lab are in ~cs253/Lab/Container. Copy them to your directory.                 

In this lab, we will examine a template class called fix, which implements a fixed-size array. This is similar to std::array, as opposed to std::vector, which implements a variable-size array.                 

Exercises

  1. With the instructor, read and understand fix.h and main1.cc. Discuss the four methods of traversing the container used in main1.cc.
  2. Compile and execute main1.cc. Why is the fourth value so strange?
  3. Individually, examine main2.cc. Even though f[14] doesn’t exist, no error message is given. Change the operator[] method in fix.h to detect this error, show a message, and exit.
  4. Individually, examine main3.cc. Note that it uses fix3.h, not fix.h. See the new iterator sub-class of fix, and the changes to begin() and end()?
    In main3.cc, the last increment of the iterator is invalid. However, this error is not detected. Change fix3.h so that this error is detected, the same as in the previous step.
  5. Show your work to the instructor.