读书人

lt;STL新手gt;关于STL set的erase方法的一

发布时间: 2012-04-14 17:14:21 作者: rapoo

<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 *就不行。

读书人网 >C++

热点推荐