C ++复制指向对象的指针列表

时间:2013-01-09 02:04:43

标签: c++ list

我的游戏中存储了Client *对象。我想将一个列表传递给客户端。 Client对象存储一个Client指针列表,因此我传入的列表我想覆盖存储的列表,但是std :: copy()给出了错误。

void Client::SetClientList(list<Client*> c) 
{ _clients.clear(); std::copy(c.begin(), c.end(), _clients); }

它给出了指向xutility文件的奇怪错误。如果我注释掉复制语句,那么它编译得很好,这就是它不喜欢的语句。

这个想法是每个客户端都存储一个范围内的客户端列表,因此也需要发送数据。

1 个答案:

答案 0 :(得分:7)

std::copy需要3个迭代器,而不是2个容器:

std::copy(c.begin(), c.end(), _clients.begin());

此外,如果它们是相同的列表类型,那么只需执行此操作:

_clients = c;