我有一个flowers
的向量,其中包含用户插入的每个花的名称,我使用push_back
输入名称。在下面的函数中我需要从向量中删除名称,我不明白第(1)和(2)行会发生什么。
P.S。当我使用erase
时会发生什么。是否指向迭代器不再存在,但矢量不会变短,矢量也不会变短,因此矢量的所有单元格都会移动"剩下。
void FlowersDB::DeleteFlowers(const std::string& FName)
{
for(FlowersVec_it iter=Flowers.begin(); iter!=Flowers.end(); iter++)
{
if((*iter)->GetFlowerName()==rName)
{
delete *iter;//(1)
flowers.erase(iter); //(2)
return;
}
}
}