[C/C++][2012-12-18] erase的返回值会指向下一个节点
2012-12-18 14:51
169 查看
erase的返回值会指向下一个节点
for(TStrMapIter iter= strmap.begin(); iter!= strmap.end();)
{
if ("somevalue" == iter->second )
{
iter = strmap.erase(iter);
}
else
{
++iter;
}
}
1. 为什么要每次计算 strmap.end(), 执行 erase后,其end值可能会变(不是所有STL都是用 链表、有些使用数组, 元素会位移)
2. for里面的iter++要写在else中,因为erase 成功后, 返回下一个指针。
for(TStrMapIter iter= strmap.begin(); iter!= strmap.end();)
{
if ("somevalue" == iter->second )
{
iter = strmap.erase(iter);
}
else
{
++iter;
}
}
1. 为什么要每次计算 strmap.end(), 执行 erase后,其end值可能会变(不是所有STL都是用 链表、有些使用数组, 元素会位移)
2. for里面的iter++要写在else中,因为erase 成功后, 返回下一个指针。
相关文章推荐
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- java实现输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head
- 一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个rand指针指向这个链表中的一个随机节点或NULL,现在要求复制一个单链表来实现这个链表,返回复制后的新链表。
- 21.输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。
- C++实现之——尽量避免返回handles指向对象内部成分
- 每天一道LeetCode-----为二叉树增加next节点,指向同一层的下一个节点
- JS函数:返回下一个元素节点而不是下一个节点
- 为什么指向的是最后一个节点的下一个节点 http://www.zhihu.com/question/20638791
- C++中函数怎么返回一个二维数组。指针怎么指向二维数组?
- Effective c++ Item 28 不要返回指向对象内部数据(internals)的句柄(handles)
- N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。 请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。c语言编程【22题】
- C/C++ 子函数返回局部变量、指针 和改变指针指向
- erase() 返回的是删除此元素之后的下一个元素的迭代器 .xml
- 左孩子右兄弟表示多叉树查找返回下一个节点
- 程序员面试金典: 9.13 C和C++ 13.7编写方法,传入参数为指向Node结构的指针,返回传入数据结构的完整拷贝。