可否delete *iterator?
如下代码:
float *a=new float;
list<float> list_f;
*a=1.0;
list_f.push_back(a);
list<float>::iterator iterator1=list_f.begin();
list_f.earse(iterator1);
delete *iterator1;
有错否?
问题点数:100、回复次数:2Top
1 楼ddddh(叶君临)回复于 2006-03-09 17:45:29 得分 100
erase以后,原来的iterator很可能就无效了。这样可能好一些:
float *bak = *iterator1;
list_f.erase(iterator1);
delete bak;
:-)Top
2 楼seethingreal(沸腾的心)回复于 2006-03-09 18:06:47 得分 0
有几处笔误:
应为list<float *>...
模拟运行了一下,是可以的,呵。Top




