Winter 2026 CS 32

Programming Assignment 4
DocuQuest

Due 11:00 PM Tuesday, March 17

The complete Project 4 specification has been posted.

Updates

Notes

The big-O requirements for Multimap can be met with a binary search tree implementation that does not try to stay balanced.

If you're building your project in a Terminal window on a Mac or on the command line under Linux, if you type the simple command make your program will build producing an executable named p4; typing ./p4 will run it. If you want a name different from p4, change the name in the first line of the Makefile.

If you're not using the make command, but are building your project with a version of g++ that does not support C++17 or later by default, force it to by compiling with g++ -std=c++17 yourOtherArgumentsGoHere.

Note for Visual C++ users: If your program dies under Visual C++ with a dialog box appearing saying "Debug Assertion Failed! ... File: ...\src\isctype.c ... expression: (unsigned)(c+1)<=256", then you called one of the functions defined by <cctype>, such as isalnum or tolower, with a character whose encoding is outside the range of 0 through 127. As a (signed) char, such values are treated as negative. If, say, ch is the character you're testing, instead of alnum(ch) say alnum(static_cast<unsigned char>(ch)).