From: Niklas_Pson AT nosmam DOT hotmail DOT com (Niklas Pettersson) Newsgroups: comp.os.msdos.djgpp Subject: removing objects from a container... (iterators) Date: 17 Jul 2001 16:56:34 GMT Organization: Lund Institute of Technology, Sweden Lines: 38 Message-ID: <90E1C8809NiklasPsonnospamhotm@130.235.20.4> NNTP-Posting-Host: npedt97.univ.vxu.se User-Agent: Xnews/03.04.11 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Hello! I have a program that has two nested iterators.. The inner iterator loop removes objects from the container.. This makes the outer iterator invalid.. Is there any nice way to solve this.. The "same" problem accures if only one iterator is used (altough that is easily solved).. Includes some code for the simple case #include #include int main() { typedef std::list TestListType; TestListType l; l.push_back(new int(10)); l.push_back(new int(20)); l.push_back(new int(30)); TestListType::iterator j; for (j = l.begin(); j != l.end(); j++) { int *int_obj = *j; std::cout << *int_obj << std::endl; if (*int_obj == 20) l.remove(int_obj); // THIS MAKES ITERATOR INVALID?? } return (0); } / Niklas