Citi Interview Question

a lot of STL details, member function, non-member function, smart pointers, exception handle.