有关建立和vector容器相同的副本的方法

thulongkang 2012-07-18 03:37:15
我采用STL中的vector容器:
#include<vector>
using namespace std;

void main()
{

vector<int *>vec_origin;
int *p;
for(int i=0;i<100;i++)
{
p=new int;
cin>>*p;
vec_origin.push_back(p);

}
//下面是建立副本
vector<int *>vec;
for(vector<int *>::iterator it=vec_origin.begin();it!=vec_origin.end();++it)
vec.pushback(*it);


//然后对vec_origin进行clear()操作:
vec_origin.clear();
//那么,我的问题是先前动态分配的内存是不是能用副本来释放???
for(vector<int *>::iterator it=vec_origin.begin();it!=vec_origin.end();++it)
{
p=*it;
delete p;

}
这个问题以前问过一次,但是只有一个人赞同我的观点。我想以代码的形式来问问大家,
这种通过副本来间接释放内存会不会造成内存泄露???、
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
baichi4141 2012-07-18
  • 打赏
  • 举报
回复
没问题
thulongkang 2012-07-18
  • 打赏
  • 举报
回复
最后一个循环修改一下:
for(vector<int *>::iterator it=vec.begin();it!=vec.end();++it)//循环体不变
thulongkang 2012-07-18
  • 打赏
  • 举报
回复
主函数少一括号~见谅

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧