- Refactor get_Person_itr to reduce repeated code
- Redesign room.get_meeting so that you don't have to make a copy, remove and then re-add the meeting to the room. fuckin' A!
- No inheritance
- No smart pointers
- No standard c libraries
- No declared or dynamically allocated built-in arrays (except for declaring const char* to point to string literals for error messages)
- Must use a
map,set,vector, andlistat least once, each with the following restrictions:- At least one of the vectors must be used with
binary_searchorlower_bound. - Except for the list, searching any container must be logarithmic in time
- People objects must be referred to with pointers in the containers.
- Containers that hold the current meetings, rooms, and people must be persistent between commands.
- At least one of the vectors must be used with
- You cannot use any explicit
for,range for,while, ordo-whileloops in the projects, use STL algorithms instead- Use algorithms like
find,copy, andfor_eachto operate on containers.
- Use algorithms like
- There are exactly four (4) exceptions to this rule:
- Your top level command loop must be in a
whileordo-whileloop. - Your file restore code in the
ldcommand must use explicit loops to control create of new data. (Note that the formats are unchanged). - The function that skips the rest of the input can be in a
whileloop. - Exactly once you have to use a
range-for- IMPORTANT: put a comment before it that says "the one range for" so kieras can find it easily.
- The body of the
range forshould be plain code
- Your top level command loop must be in a
- Minus the
listcontainer, anytime a container is searched for a supplied Person, Meeting, or Room the search must be done in logarithmic time. Note: do not use abinary_searchorlower_boundalgorithm on thelistcontainer. - You must use the
copyalgorithm with an output stream at least once. Remember you can define additionaloperator<<overloads to make this easy. - You must use
std::bindwith bound values with an algorithm at least once. - You must use a custom functor that has member variables with getter/reader functions in combination with an algorithm and a container at least once in the project. Hint: Consider part of the pa command.
- You must use a lambda with a capture variable with an algorithm at least once.
- In all other places in your code where you use a Standard Library algorithm, you must not use your own helper function or custom function object class if
bind,mem_fn, a lambda, an inserter a stream iterator or some other Standard Library facility will work just as well.