当需要从vector中删除元素时,需要整个vector容器去进行遍历
1、如果只需要删除某一个满足条件的元素不需要再继续查找时,使用以下方
void ItemsManager::deleteItems(vector<ItemsData>& vItemsList,string sName)
{
vector<ItemsData>::iterator iter=vItemsList.begin();
for(;iter!=vItemsList.end();)
{
if((*iter).getName()==sName)
{
iter=vItemsList.erase(iter);
break;
}else
{
iter++;
}
}
}
使用引用的放法传入vector参数。
2、当需要从vector中删除所有满足条件的元素时,需要整个vector容器去进行遍历
void ItemsManager::deleteItems(vector<ItemsData>& vItems,string sName)
{
vector<ItemsData>::iterator iter=vItems.begin();
for(;iter!=vItems.end();)
{
if((*iter).getName()==sName)
{
iter=vItems.erase(iter);
}else
{
iter++;
}
}