2013-01-09 84 views
2

我有存储在我的游戏中的客户端*对象。我想将一个列表传递给客户端。 Client对象存储客户端指针列表,因此我传入的列表要覆盖存储的列表,但std :: copy()会给出错误。C++复制指向对象的指针列表

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

它给出了指向xutility文件的奇怪错误。如果我将复制声明注释掉,那么它会编译好,所以这是它不喜欢的声明。

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

+2

检查性病'参数::再次复制。 – chris

+0

oops我的坏。谢谢。 – user441521

回答

7

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

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

而且,如果它们是相同的列表类型,然后只是这样做:

_clients = c;