TA's solution

几个注意的地方。
1.  List.h add(T element) =>  add(const T& element). 
2.  Iterator.h  add virtual destructor. It's wrong without it.
3.  for (int i = index; i < cnt; ++i) => for (int i = index; i<cnt-1; ++i)
4.  add comment for `array[--cnt] = 0`