This technique allows you to delete the contents of a List at the same time you are storing pointers a list. This same approach can be used for maps or vectors.
#include#includeusing namespace std;//Declaring a class ClassListclass ClassList {public: ClassList() { cout << "construct an ClassList
"; } ~ClassList() { cout << "destruct an ClassList
"; }};/*A list which takes pointers to the Class ClassList */list listClasses;/*CleanUp function which clears all the contents of the List by calling the Delete function iteratively*/void cleanup(){ list::iterator iteratorList; iteratorList = listClasses.begin(); while(iteratorList!= listClasses.end()) { delete (ClassList*)(*iteratorList); iteratorList++; }}int main(){//Add the New classes into the List listClasses.push_back(new ClassList); listClasses.push_back(new ClassList); listClasses.push_back(new ClassList); listClasses.push_back(new ClassList);/*Calling the Clean up method to clear all the contents of the list */ cleanup();}/***This example shows you how to delete the contents of a list by using iterators *****/