爲什麼下面的代碼失敗?擦除程序中的矢量元素
typedef vector<SOCKET /*socket*/> UIConnection;
UIConnection::iterator itrUICon;
for (itrUICon = m_ListUIConnection.begin();itrUICon != m_ListUIConnection.end();itrUICon++)
{
if (*itrUICon == nSock)
{
itrUICon = m_ListUIConnection.erase(itrUICon);
}
}
查爾斯將這個工作映射爲well.typedef map GatewayConnection; –
2011-05-16 07:01:31
@Chris_vr:對於'std :: remove'對於關聯容器不起作用,因爲它們保持順序。你可以做'mp.erase(it ++);'而不是因爲擦除地圖中的元素不會使除指向被刪除元素的迭代器以外的任何迭代器失效。 – 2011-05-16 07:31:13