关于内容为指针的vector对象的复制

淩亂°似流年 2022-08-08 06:21 236阅读 0赞

for(vector*>::const_iterator it=rhs.wait_list.begin();it!=rhs.wait_list.end();++it)
{pair* ppa=new pair;
ppa=*it;//此处只会复制rhs.wait_list的指针,大问题!!!
wait_list.push_back(ppa);

}

  1. 若此处只复制指针,那么如果rhs.wait\_list指针所指向的内容发生变化,而\*this.wait\_list

中的指针仍然认为指针所指向的内容没法变化,正如,你只知道要找的人的地址,而不知这个人是谁,如果这个人一旦搬家,你还按图索骥,就大错特错。

正确代码如下:for(vector*>::const_iterator it=rhs.wait_list.begin();it!=rhs.wait_list.end();++it)
{pair* ppa=new pair;
*ppa=**it;//此时复制的是*it指针所指向的对象
wait_list.push_back(ppa);
}

发表评论

表情:
评论列表 (有 0 条评论,236人围观)

还没有评论,来说两句吧...

相关阅读