STL遍历删除注意的问题

在之前写程序的时候用的是vector, 查找到指定的数据, 然后删除, 继续遍历. 但是会出现内存错误, 这个是因为已经删掉了, 在删掉的这个节点上继续往后查找必然会出现问题, 还要注意size()==0的问题.
这个问题不止会出现在vector容器中, 只要是通过迭代器遍历, 就会出现这样的问题.

vector::iterator it = ListData.begin();
while (it != ListData.end() && ListData.size() != 0)
{
    if( it == 10)
        it = ListData.erase(it); 
}

STL vector

#include 
using namespace std;

定义vector
vector ListData;

添加元素
ListData.push_back(1);

获取元素数量
ListData.size();

清空元素
ListData.clear();

遍历

if (ListData.size() != 0)
{
    vector::iterator ListDataIterator = ListData.begin();
    while (ListDataIterator != ListData.end())
    {