C++ vector容器删除数据
阅读(10078)vector容器删除数据,由于游标iterator会在元素删除后自动移动到下一个节点,因此只有在不需要删除节点的时候执行iter++;只有vector容器的iterator有这一特性
for(vector<int>::iterator iter = m_vRunningProcess.begin(); iter != m_vRunningProcess.end();)
{
if(!checkRuningProcess(*iter))
{
iter = m_vRunningProcess.erase(iter);
}
else
{
iter ++;
}
}
可以用general algorithm: remove_if
v.erase(remove(v.begin(), v.end(), 99), v.end());
v.erase(remove(v.begin(), v.end(), ele-to-delete), v.end());
可以这样