我有一个指向某个对象的指针的列表。我想复制列表但使用新指针。
我的意思是列表中的每个元素,对对象做新的并将新地址插入新列表中。
我尝试使用:
std::list<Course*> tmp;
tmp = courses; // courses is list<Course*>.
std::for_each(tmp.begin(), tmp.end(), ReplaceAllCells());
class ReplaceAllCells {
public:
ReplaceAllCells(){}
void operator( )( Course* course) {
course = new Course(*course);
}
};
在调用函数后,我得到了具有相同指针的新列表...... tmp 的值没有改变......我怎样才能在不使用任何循环的情况下解决这个问题?谢谢。