C++ vector容器删除数据
阅读(9554)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());
可以这样