RemoveContact_HI 创建了这个函数来删除向量中的元素:
void JNP::IPComm_HostType::RemoveContact_H( UINT contactIndex,std::vector<IPContact>& l )
{
assert( contactIndex < l.size() );
l.erase( l.begin() + contactIndex );
}
但是,它似乎不起作用。当我调用该函数时,该元素不会被删除。向量的大小减少了 1,但您仍然可以通过编码访问所有元素,包括删除的元素
hostList[some integer]
即如果 hostList 有 2 个元素,我要调用
RemoveContact_H( 0, hostList )
大小将减小到 1,但两个元素仍会退出并且可以访问!
编辑
不出所料,错误是由于我的编码而不是 vector::erase() 函数。我之前为 IPContact 类定义了 equals 运算符,它实际上并没有复制任何数据。