在下面的代码中, mKnownRSList的类型是:
std::vector<RSAddress *>
其中RSAddress是我写的一个类。函数removeItem从此向量中删除一个项目。
我的问题是,在调用 mKnownRSList 上的擦除函数后,我是否应该取消分配 std::remove_if 返回的迭代器所指向的地址。目前,我对名为 last 的取消引用迭代器显式发出删除调用。您认为这种方法正确吗?谢谢。
void
ABC::removeItem(RSAddress * rsAddr)
{
auto last =
std::remove_if(mKnownRSList.begin(),
mKnownRSList.end(),
[rsAddr]( RSAddress * o )
{
return (*o == *rsAddr);
});
mKnownRSList.erase(last, mKnownRSList.end());
delete *last;
}