map类的erase方法的在Linux与Windows中的差异
2014-01-20 17:29
323 查看
这次的代码是跨平台的,尼玛在win32上通过,但是在linux上不通过了,查找了一下原来是平台linux不支持。
有人举了例子:
if(itr->first == 12){
map<int,float>::iterator
tempitr = itr++;
i_f_map.erase(tempitr);
}else{
itr++;
}
尤其是在嵌套容器中,容器里再嵌套容器,就很有可能出现itr是非法的,导致itr != i_f_map.end()条件不能被判断出来。
所以我建议大家使用下边的。
有人举了例子:
for
(itr = i_f_map.begin(); itr != i_f_map.end(); ){
if(itr->first == 12){
map<int,float>::iterator
tempitr = itr++;
i_f_map.erase(tempitr);
}else{
itr++;
}
}
尤其是在嵌套容器中,容器里再嵌套容器,就很有可能出现itr是非法的,导致itr != i_f_map.end()条件不能被判断出来。
所以我建议大家使用下边的。
相关文章推荐
- Linux与Windows中map类erase方法的差异
- Linux与Windows中map类erase方法的差异
- Linux与Windows中map类erase方法实现的不同决定使用的不同
- wxWidgets整合OpenGL+OpenCV+MathPlot(一种Windows和Linux通用的方法)
- 双系统中从Windows访问Linux分区 ext2 ext3 的三种方法
- C语言memset函数详解(Linux下和windows下的差异)
- loadrunner中添加windows和linux资源监控器的方法
- paip兼容windows与linux的java类根目录路径的方法
- linux/unix/windows环境查看本机的外网内网地址方法
- linux挂载windows共享文件夹的方法
- windows和Linux设置ReuseAddress绑定地址的差异
- 删除SVN三种方法delSvn(windows+linux)
- 动态调用动态库方法 c/c++ linux windows
- 双系统下删除Linux系统方法和Windows无法启动问题的解决方法
- 【转】VMWare虚拟机linux访问windows主机硬盘文件方法
- Windows和Linux环境,网络异常模拟测试方法【转载自光荣之路微信公众号】
- windows和linux获取文件夹内容的一种方法
- LinuxMint(Ubuntu ver) 做ntp时间服务器Linux及Windows做客户端的配置方法
- svn修改新url地址方法(linux,windows,centos)
- 从主机 Windows 上无法远程访问 Linux 的 Tomcat 服务器解决方法