免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3739 | 回复: 5
打印 上一主题 下一主题

[C++] 为什么在c++中的map中删除了的元素,还是可以被find到……很奇怪的 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-18 16:57 |只看该作者 |倒序浏览
大家好我想问大家一下,为什么在c++中的map中删除了的元素,还是可以被find到…………很奇怪的,这样的话怎么才能真正做出正确的判断呢?

#include <iostream>
#include <map>

using namespace std;

class Data
{
public:
  Data(int val=0)
  {
    mVal=val;
  }
  int getVal() const
  {
    return mVal;
  }

  void setVal(int val)
  {
    mVal=val;
  }
protected:
  int mVal;
};


int main()
{
  map<int,Data> dataMapNew;

  dataMapNew[1]=Data(4);
  dataMapNew[2]=Data(5);
  dataMapNew[6]=Data(6);


  cout<<"erase"<<endl;
  cout<<dataMapNew.count(2)<<endl;
  dataMapNew.erase(2);
  cout<<dataMapNew.count(2)<<endl;

  //find a value in the map
  map<int,Data>::iterator itt = dataMapNew.find(2);
  if(itt!=dataMapNew.end());
  {
        cout<<itt->second.getVal()<<endl;
  }


  return 0;
}

论坛徽章:
0
2 [报告]
发表于 2009-03-18 18:09 |只看该作者

回复 #1 art_codes 的帖子

细心啊
  if(itt!=dataMapNew.end());
  {
        cout<<itt->second.getVal()<<endl;
  }

论坛徽章:
0
3 [报告]
发表于 2009-03-18 18:18 |只看该作者

回复 #2 tyc611 的帖子

眼力不错。。。

论坛徽章:
0
4 [报告]
发表于 2009-03-18 19:03 |只看该作者
原帖由 tyc611 于 2009-3-18 18:09 发表
细心啊

视力猛!

论坛徽章:
0
5 [报告]
发表于 2009-03-18 20:38 |只看该作者
回3,4楼,找一个好的编译器比眼力好更重要

论坛徽章:
0
6 [报告]
发表于 2009-03-19 15:34 |只看该作者
原帖由 tyc611 于 2009-3-18 18:09 发表
细心啊

大哥太强了………… 妈的我看遍天也没看书来…………日
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP