According to some STL documentation I found, inserting or deleting elements in an std::list does not invalidate iterators. This means that it is allowed to loop over a list
Try using an iterator for both. Try:
std::list::iterator i = testList.end();
and reverse through with --i