首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

<STL新手>关于STL set的erase方法的一个小疑点

2012-04-14 
STL新手关于STL set的erase方法的一个小问题C/C++ code#include iostream#include setusing namespa

<STL新手>关于STL set的erase方法的一个小问题

C/C++ code
#include <iostream>#include <set>using namespace std;bool contain(set<int> s,int i)//判断集合s是否包含i{    return (*s.find(i)==i);}int main(void){    set<int> t;    t.insert(0);    t.insert(2);    t.insert(3);    t.insert(4);    t.insert(5);    t.erase(2);    t.erase(0);    t.erase(3);    cout<<contain(t,2)<<endl;    //cout<<contain(t,0)<<endl;    //cout<<contain(t,3)<<endl;    return 0;}


我明明已经删除了2,怎么contain操作是1呢?或者contain的写法不对。。请指正。。

[解决办法]
bool contain(set<int> s,int i)//判断集合s是否包含i
{
return s.count(i) > 0;
}


因为找不到的时候值和s.end()相同,这个时候再operator *就不行。

热点排行