- 论坛徽章:
- 0
|
大家好我想问大家一下,为什么在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;
} |
|