std::map中迭代器失效的问题
来源:互联网 发布:破解版电视软件 编辑:程序博客网 时间:2024/04/29 02:21
删除std::map m中的元素,如果用迭代器操作:
std::map::iterator it = m.begin ();
for ( ; it != m.end(); ++it)
{
m.eraser (it);
}
这样做会出问题,因为被eraser后迭代器失效,再进行++就会down机
如果这样
std::map::iterator it = m.begin ();
for ( ; it != m.end(); )
{
m.eraser (it++);
}
这样就没问题了,因为先进行迭代器++后删除迭代器,所以就没有问题了,相当于下面的代码
std::map::iterator it = m.begin ();
for ( ; it != m.end(); )
{
std::map::iterator tmp_it = it;
++it;
m.eraser (tmp_it );
}
- std::map中迭代器失效的问题
- vector和map的迭代器失效问题
- map和vector的迭代器失效问题
- Std::map的排序
- std::map的使用
- std::map的用法
- std::map的使用
- std::map的机制
- std::map的使用方法
- std::map的使用
- 关于std::map中的find和[]的问题
- 关于std::map中的find和[]的问题
- 关于std::map中的find和[]的问题
- 使用std的vector,map,list, set等注意问题
- 关于std::map中的find和[]的问题
- c++中使用std::map是遇到的小问题
- 【转载】关于std::map中的find和[]的问题
- std::set/std::map的"建议插入"
- VC 学习之三,引用与指针
- hdu1844 最大报销额
- C中头文件的一些问题
- Climbing Stairs
- CTreeCtrl 控件的用法
- std::map中迭代器失效的问题
- 为什么DebugPort清零,windbg就收不到这个进程的调试信息了。转的。
- javascript中的深度克隆
- How to extract .RAR files on Ubuntu
- 同步通信与异步通信区别 .
- 进程地址空间 - 地址空间布局
- hdu4474 bfs
- 解决编译WebKit的问题
- Android