LINUX.ORG.RU

Проблема с STL


0

0

Использую словарь
при загрузке софтины закидываю
map<int,Object*,less<int> > p;
........
for(int i=1;i<=100;i++)
{
  Object* f=new Object();
  p.insert(pair<int,Object*>(i,f));
}
делаю cout<<p.size() //получаю 100
вроде все прекрасно
затем я удалаяю часть их
map<int,Object*>::iteratot i=p.lower_bound(1);
while(i!=p.end()
{
  if('Ok') p.erase(i);
  i++; 
}
заием cout<<p.size(); получаю 2 тоже нормально
но после этого
Object* f=new Object();
p.insert(pair<int,Object*>(i,f));
раз двадцать а в ответ 2
anonymous


>p.insert(pair<int,Object*>(i,f));
А что такое i вне цикла?
и кто будет за тебя память чистить после
>if('Ok') p.erase(i);
?

anonymous
()

После p.erase(i) у тебя i черти куда указывает. А ты потом i++ делаешь.

Agweb
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.