it seems like your using pointers and dynamic memory for no purpose. from the looks of it, you dont need to use dynamic memory in this situation. in fact, ive found that using STL containers, the only time i need to allocate memory myself is when i want to achieve polymorphism. it doesnt seem thats what you need here though.
instead, dont allocate the memory yourself, just have the vector do it for you. example:
std::vector<CCell> tileList;........tileList.push_back(CCell(screen,"pic.bmp",Vec,32,32));
and thats it! the beauty of the STL is you dont have to manage the memory yourself. only use pointers if you specifically need pointers for your situation (like you want to achieve run time polymorphism for example).