,迭代器是否不用删除

在线等,迭代器是否不用删除?
list< int * > UserResList;
 int aa=10;
 int*a=&aa;

 int bb=10;
 int*b=&bb;

 UserResList.push_back(a);
 UserResList.push_back(b);
list<int*>::iterator pUserRes;
pUserRes =UserResList.begin();
 if (pUserRes !=UserResList.end())
 {
 delete (*pUserRes);   // 删除就报错
 }
大家帮忙看看

------解决方案--------------------
delete只删除new出来的堆上的变量!跟迭代器毫无关系。。你若不行,不用迭代器,直接delete(a)...一样的崩
------解决方案--------------------
delete与new是成对使用的,因此无需delete。

另:list< int * >改为list< int >更为精炼。
------解决方案--------------------
你的UserResList保存着两个栈上变量的地址。
*pUserRes得到的就是栈上变量的地址。
你对栈上变量使用delete,自然就报错了,这是一种错误的做法,至于VS2008下没有报错,那是偶然的。
你还是把C++语言基础和STL的用法好好再学一学吧。