2

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

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

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

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

4

1 回答 1

7

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

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

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

_clients = c;
于 2013-01-09T02:06:08.247 回答