erase的返回值会指向下一个节点
for(TStrMapIter iter= strmap.begin(); iter!= strmap.end();)
{
}
1. 为什么要每次计算 strmap.end(), 执行 erase后,其end值可能会变(不是所有STL都是用 链表、有些使用数组, 元素会位移)
2. for里面的iter++要写在else中,因为erase 成功后, 返回下一个指针。
erase的返回值会指向下一个节点
for(TStrMapIter iter= strmap.begin(); iter!= strmap.end();)
{
}
1. 为什么要每次计算 strmap.end(), 执行 erase后,其end值可能会变(不是所有STL都是用 链表、有些使用数组, 元素会位移)
2. for里面的iter++要写在else中,因为erase 成功后, 返回下一个指针。