2013-01-09 83 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;