关于容器Map删除元素的常见问题
来源:互联网 发布:网络传输技术种类 编辑:程序博客网 时间:2024/05/22 21:41
先上代码块:
for (map<index, value>::iterator i=mapData.begin(); i!=mapData.end(); i++) { if (i->first == xxx) { mapData.erase(i); } }这是一个很常见的错误:i指针在元素被删除后失效了,回到for语句中与mapData.end() 进行比较将会发生错误。
下面给出一个正确的删除方法:
for (map<index, value>::iterator i=mapData.begin(); i!=mapData.end()) { if (i->first == xxx) { mapData.erase(i++); } else { i++; } }
另外,当map中的Value为指向堆区的指针时,在删除之前别忘了先要释放内存:
for (map<index, value>::iterator i=mapData.begin(); i!=mapData.end()) { if (i->first == xxx) { delete i->second; i->second = NULL; mapData.erase(i++); } else { i++; } }
0 0
- 关于容器Map删除元素的常见问题
- C++关于容器Map删除元素的常见问题
- 删除map容器中指定的元素
- map容器(元素的添加/遍历/删除)
- C++ map关联容器删除元素
- 关于STL容器中vector特定元素的删除问题
- STL容器元素的删除
- Map、List元素的删除
- STL中map容器的元素插入
- c++ map容器的元素插入
- STL容器删除元素的陷阱(转)
- 删除容器的元素时应谨慎
- STL容器删除元素的陷阱
- 删除容器的元素时应谨慎
- 删除顺序容器内元素的操作
- 顺序容器:删除元素的操作
- STL容器的删除元素问题
- 删除STL容器元素的方法
- 文章标题
- [leetcode] 142. Linked List Cycle II
- 刚在一个论坛看到一篇文章,说的似乎很是高深,我也不太懂,于是转载了过来,大家一起看看
- 利用穷举法解决01背包问题
- log4j.properties 的使用详解
- 关于容器Map删除元素的常见问题
- 手机Android音视频采集与直播推送
- 学习笔记:UIPickerView
- Windows环境下Android NDK环境搭建
- 【算法系列-4】二叉树
- 20160823关于GCD与NSOperation的一些比较
- 字节序
- DNS域名解析过程
- RSA加密初体验--加解密