我的游戏中存储了Client *对象。我想将一个列表传递给客户端。 Client对象存储一个Client指针列表,因此我传入的列表我想覆盖存储的列表,但是std :: copy()给出了错误。
void Client::SetClientList(list<Client*> c)
{ _clients.clear(); std::copy(c.begin(), c.end(), _clients); }
它给出了指向xutility文件的奇怪错误。如果我注释掉复制语句,那么它编译得很好,这就是它不喜欢的语句。
这个想法是每个客户端都存储一个范围内的客户端列表,因此也需要发送数据。
答案 0 :(得分:7)
std::copy
需要3个迭代器,而不是2个容器:
std::copy(c.begin(), c.end(), _clients.begin());
此外,如果它们是相同的列表类型,那么只需执行此操作:
_clients = c;