elements of programming interviews in c++